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

View Problem - Process Solution

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

% Computer : n019.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:38 EDT 2023

% Result   : Theorem 55.36s 7.78s
% Output   : Refutation 55.36s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   61
%            Number of leaves      :  182
% Syntax   : Number of formulae    :  400 ( 113 unt;  81 typ;   0 def)
%            Number of atoms       : 7539 (1093 equ; 110 cnn)
%            Maximal formula atoms :  227 (  23 avg)
%            Number of connectives : 36255 ( 454   ~; 298   |;  94   &;25961   @)
%                                         (   0 <=>;4257  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   57 (  13 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  : 1552 (1552   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   83 (  79 usr;  47 con; 0-4 aty)
%                                         (5191  !!;   0  ??;   0 @@+;   0 @@-)
%            Number of variables   : 6131 (5249   ^; 882   !;   0   ?;6131   :)

% Comments : 
%------------------------------------------------------------------------------
thf(subst_type,type,
    subst: $tType ).

thf(term_type,type,
    term: $tType ).

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

thf('#sk3356_type',type,
    '#sk3356': ( subst > term > subst > $o ) > term ).

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

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

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

thf('#form3615_type',type,
    '#form3615': ( subst > term > subst > $o ) > $o ).

thf('#sk839_type',type,
    '#sk839': ( subst > term > subst > $o ) > term ).

thf('#sk967_type',type,
    '#sk967': ( subst > term > subst > $o ) > subst ).

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

thf(substmonoid_type,type,
    substmonoid: $o ).

thf('#sk3410_type',type,
    '#sk3410': ( subst > term > subst > $o ) > subst > term > term ).

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

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

thf('#sk2144_type',type,
    '#sk2144': ( subst > term > subst > $o ) > subst ).

thf(hoasapinj1_type,type,
    hoasapinj1: $o ).

thf('#form5466_type',type,
    '#form5466': $o ).

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

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

thf(hoasap_type,type,
    hoasap: subst > term > subst > term > term ).

thf('#form2417_type',type,
    '#form2417': ( subst > term > subst > $o ) > $o ).

thf(hoasinduction_gthm_type,type,
    hoasinduction_gthm: $o ).

thf('#sk3223_type',type,
    '#sk3223': ( subst > term > subst > $o ) > term ).

thf(hoaslaminj_type,type,
    hoaslaminj: $o ).

thf('#sk109_type',type,
    '#sk109': ( term > $o ) > term ).

thf('#sk46_type',type,
    '#sk46': ( term > $o ) > term ).

thf(one_type,type,
    one: term ).

thf(id_type,type,
    id: subst ).

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

thf(hoaslamnotap_type,type,
    hoaslamnotap: $o ).

thf('#sk1944_type',type,
    '#sk1944': ( subst > term > subst > $o ) > subst ).

thf(induction2_type,type,
    induction2: $o ).

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

thf('#sk733_type',type,
    '#sk733': subst > term > subst > $o ).

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

thf(induction2lem_type,type,
    induction2lem: $o ).

thf(sh_type,type,
    sh: subst ).

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

thf('#sk4068_type',type,
    '#sk4068': ( subst > term > subst > $o ) > term > term ).

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

thf('#sk1077_type',type,
    '#sk1077': ( subst > term > subst > $o ) > subst ).

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

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

thf('#l_lift30324_type',type,
    '#l_lift30324': 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('#sk1760_type',type,
    '#sk1760': ( subst > term > subst > $o ) > term ).

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

thf('#sk467_type',type,
    '#sk467': ( subst > term > term ) > term ).

thf('#sk708_type',type,
    '#sk708': ( subst > term > subst > $o ) > subst ).

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

thf(hoasinduction_type,type,
    hoasinduction: $o ).

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

thf(termmset_type,type,
    termmset: $o ).

thf('#sk516_type',type,
    '#sk516': ( subst > term > term ) > subst ).

thf(hoasapinj2_type,type,
    hoasapinj2: $o ).

thf('#sk430_type',type,
    '#sk430': ( subst > term > term ) > subst ).

thf(hoasinduction_lem1_type,type,
    hoasinduction_lem1: $o ).

thf(hoasapnotvar_type,type,
    hoasapnotvar: $o ).

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

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

thf(hoaslamnotvar_type,type,
    hoaslamnotvar: $o ).

thf(hoaslam_type,type,
    hoaslam: subst > ( subst > term > term ) > term ).

thf(hoasinduction_lem3_type,type,
    hoasinduction_lem3: $o ).

thf(hoasinduction_lem2_type,type,
    hoasinduction_lem2: $o ).

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

thf('#sk1677_type',type,
    '#sk1677': term ).

thf('#form2686_type',type,
    '#form2686': ( subst > term > subst > $o ) > $o ).

thf('#sk196_type',type,
    '#sk196': ( term > $o ) > term ).

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

thf(hoasvar_type,type,
    hoasvar: subst > term > subst > $o ).

thf('#sk1549_type',type,
    '#sk1549': ( subst > term > subst > $o ) > subst ).

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

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

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

thf('#form108_type',type,
    '#form108': ( term > $o ) > $o ).

thf('#sk3185_type',type,
    '#sk3185': ( subst > term > term ) > term ).

thf('#sk153_type',type,
    '#sk153': ( term > $o ) > term ).

thf(hoasinduction_gthm,axiom,
    ( hoasinduction_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
                                                   => ( induction2lem
                                                     => ( induction2
                                                       => ( substmonoid
                                                         => ( termmset
                                                           => ( hoasapinj1
                                                             => ( hoasapinj2
                                                               => ( hoaslaminj
                                                                 => ( hoaslamnotap
                                                                   => ( hoaslamnotvar
                                                                     => ( hoasapnotvar
                                                                       => ( hoasinduction_lem1
                                                                         => ( hoasinduction_lem2
                                                                           => ( hoasinduction_lem3
                                                                             => hoasinduction ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf('0',plain,
    ( hoasinduction_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
                                                   => ( induction2lem
                                                     => ( induction2
                                                       => ( substmonoid
                                                         => ( termmset
                                                           => ( hoasapinj1
                                                             => ( hoasapinj2
                                                               => ( hoaslaminj
                                                                 => ( hoaslamnotap
                                                                   => ( hoaslamnotvar
                                                                     => ( hoasapnotvar
                                                                       => ( hoasinduction_lem1
                                                                         => ( hoasinduction_lem2
                                                                           => ( hoasinduction_lem3
                                                                             => hoasinduction ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasinduction,axiom,
    ( hoasinduction
    = ( ! [P: subst > term > subst > $o] :
          ( ! [M: subst,A: term,N: subst,K: subst] :
              ( ( P @ M @ A @ ( comp @ K @ N ) )
             => ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
         => ( ! [M: subst,A: term,N: subst,K: subst] :
                ( ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
               => ( P @ M @ A @ ( comp @ K @ N ) ) )
           => ( ! [A: term] :
                  ( ( hoasvar @ id @ A @ id )
                 => ( P @ id @ A @ id ) )
             => ( ! [A: term,B: term] :
                    ( ( P @ id @ A @ id )
                   => ( ( P @ id @ B @ id )
                     => ( P @ id @ ( hoasap @ id @ A @ id @ B ) @ id ) ) )
               => ( ! [F: subst > term > term] :
                      ( ! [M: subst,A: term,N: subst] :
                          ( ( sub @ ( F @ M @ A ) @ N )
                          = ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
                     => ( ! [A: term] :
                            ( ( P @ id @ A @ id )
                           => ( P @ id @ ( F @ id @ A ) @ id ) )
                       => ( P @ id
                          @ ( hoaslam @ id
                            @ ^ [M: subst,A: term] : ( F @ M @ A ) )
                          @ id ) ) )
                 => ! [A: term] : ( P @ id @ A @ id ) ) ) ) ) ) ) ) ).

thf('1',plain,
    ( hoasinduction
    = ( ! [X4: subst > term > subst > $o] :
          ( ! [X6: subst,X8: term,X10: subst,X12: subst] :
              ( ( X4 @ X6 @ X8 @ ( comp @ X12 @ X10 ) )
             => ( X4 @ ( comp @ X6 @ X12 ) @ ( sub @ X8 @ X12 ) @ X10 ) )
         => ( ! [X14: subst,X16: term,X18: subst,X20: subst] :
                ( ( X4 @ ( comp @ X14 @ X20 ) @ ( sub @ X16 @ X20 ) @ X18 )
               => ( X4 @ X14 @ X16 @ ( comp @ X20 @ X18 ) ) )
           => ( ! [X22: term] :
                  ( ( hoasvar @ id @ X22 @ id )
                 => ( X4 @ id @ X22 @ id ) )
             => ( ! [X24: term,X26: term] :
                    ( ( X4 @ id @ X24 @ id )
                   => ( ( X4 @ id @ X26 @ id )
                     => ( X4 @ id @ ( hoasap @ id @ X24 @ id @ X26 ) @ id ) ) )
               => ( ! [X28: subst > term > term] :
                      ( ! [X30: subst,X32: term,X34: subst] :
                          ( ( sub @ ( X28 @ X30 @ X32 ) @ X34 )
                          = ( X28 @ ( comp @ X30 @ X34 ) @ ( sub @ X32 @ X34 ) ) )
                     => ( ! [X36: term] :
                            ( ( X4 @ id @ X36 @ id )
                           => ( X4 @ id @ ( X28 @ id @ X36 ) @ id ) )
                       => ( X4 @ id
                          @ ( hoaslam @ id
                            @ ^ [V_1: subst,V_2: term] : ( X28 @ V_1 @ V_2 ) )
                          @ id ) ) )
                 => ! [X38: term] : ( X4 @ id @ X38 @ id ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasinduction_lem3,axiom,
    ( hoasinduction_lem3
    = ( ! [P: subst > term > subst > $o] :
          ( ! [M: subst,A: term,N: subst,K: subst] :
              ( ( P @ M @ A @ ( comp @ K @ N ) )
             => ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
         => ( ! [M: subst,A: term,N: subst,K: subst] :
                ( ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
               => ( P @ M @ A @ ( comp @ K @ N ) ) )
           => ( ! [F: subst > term > term] :
                  ( ! [M: subst,A: term,N: subst] :
                      ( ( sub @ ( F @ M @ A ) @ N )
                      = ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
                 => ( ! [A: term] :
                        ( ( P @ id @ A @ id )
                       => ( P @ id @ ( F @ id @ A ) @ id ) )
                   => ( P @ id
                      @ ( hoaslam @ id
                        @ ^ [M: subst,A: term] : ( F @ M @ A ) )
                      @ id ) ) )
             => ! [A: term] :
                  ( ! [B: term] :
                      ( ( P @ id @ B @ id )
                     => ( P @ id @ ( sub @ A @ ( push @ B @ id ) ) @ id ) )
                 => ( P @ id @ ( lam @ A ) @ id ) ) ) ) ) ) ) ).

thf('2',plain,
    ( hoasinduction_lem3
    = ( ! [X4: subst > term > subst > $o] :
          ( ! [X6: subst,X8: term,X10: subst,X12: subst] :
              ( ( X4 @ X6 @ X8 @ ( comp @ X12 @ X10 ) )
             => ( X4 @ ( comp @ X6 @ X12 ) @ ( sub @ X8 @ X12 ) @ X10 ) )
         => ( ! [X14: subst,X16: term,X18: subst,X20: subst] :
                ( ( X4 @ ( comp @ X14 @ X20 ) @ ( sub @ X16 @ X20 ) @ X18 )
               => ( X4 @ X14 @ X16 @ ( comp @ X20 @ X18 ) ) )
           => ( ! [X22: subst > term > term] :
                  ( ! [X24: subst,X26: term,X28: subst] :
                      ( ( sub @ ( X22 @ X24 @ X26 ) @ X28 )
                      = ( X22 @ ( comp @ X24 @ X28 ) @ ( sub @ X26 @ X28 ) ) )
                 => ( ! [X30: term] :
                        ( ( X4 @ id @ X30 @ id )
                       => ( X4 @ id @ ( X22 @ id @ X30 ) @ id ) )
                   => ( X4 @ id
                      @ ( hoaslam @ id
                        @ ^ [V_1: subst,V_2: term] : ( X22 @ V_1 @ V_2 ) )
                      @ id ) ) )
             => ! [X32: term] :
                  ( ! [X34: term] :
                      ( ( X4 @ id @ X34 @ id )
                     => ( X4 @ id @ ( sub @ X32 @ ( push @ X34 @ id ) ) @ id ) )
                 => ( X4 @ id @ ( lam @ X32 ) @ id ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasinduction_lem2,axiom,
    ( hoasinduction_lem2
    = ( ! [P: subst > term > subst > $o] :
          ( ! [M: subst,A: term,N: subst,K: subst] :
              ( ( P @ M @ A @ ( comp @ K @ N ) )
             => ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
         => ( ! [M: subst,A: term,N: subst,K: subst] :
                ( ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
               => ( P @ M @ A @ ( comp @ K @ N ) ) )
           => ( ! [A: term,B: term] :
                  ( ( P @ id @ A @ id )
                 => ( ( P @ id @ B @ id )
                   => ( P @ id @ ( hoasap @ id @ A @ id @ B ) @ id ) ) )
             => ! [A: term,B: term] :
                  ( ( P @ id @ A @ id )
                 => ( ( P @ id @ B @ id )
                   => ( P @ id @ ( ap @ A @ B ) @ id ) ) ) ) ) ) ) ) ).

thf('3',plain,
    ( hoasinduction_lem2
    = ( ! [X4: subst > term > subst > $o] :
          ( ! [X6: subst,X8: term,X10: subst,X12: subst] :
              ( ( X4 @ X6 @ X8 @ ( comp @ X12 @ X10 ) )
             => ( X4 @ ( comp @ X6 @ X12 ) @ ( sub @ X8 @ X12 ) @ X10 ) )
         => ( ! [X14: subst,X16: term,X18: subst,X20: subst] :
                ( ( X4 @ ( comp @ X14 @ X20 ) @ ( sub @ X16 @ X20 ) @ X18 )
               => ( X4 @ X14 @ X16 @ ( comp @ X20 @ X18 ) ) )
           => ( ! [X22: term,X24: term] :
                  ( ( X4 @ id @ X22 @ id )
                 => ( ( X4 @ id @ X24 @ id )
                   => ( X4 @ id @ ( hoasap @ id @ X22 @ id @ X24 ) @ id ) ) )
             => ! [X26: term,X28: term] :
                  ( ( X4 @ id @ X26 @ id )
                 => ( ( X4 @ id @ X28 @ id )
                   => ( X4 @ id @ ( ap @ X26 @ X28 ) @ id ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasinduction_lem1,axiom,
    ( hoasinduction_lem1
    = ( ! [P: subst > term > subst > $o] :
          ( ! [M: subst,A: term,N: subst,K: subst] :
              ( ( P @ M @ A @ ( comp @ K @ N ) )
             => ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
         => ( ! [M: subst,A: term,N: subst,K: subst] :
                ( ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
               => ( P @ M @ A @ ( comp @ K @ N ) ) )
           => ( ! [A: term] :
                  ( ( hoasvar @ id @ A @ id )
                 => ( P @ id @ A @ id ) )
             => ! [A: term] :
                  ( ( var @ A )
                 => ( P @ id @ A @ id ) ) ) ) ) ) ) ).

thf('4',plain,
    ( hoasinduction_lem1
    = ( ! [X4: subst > term > subst > $o] :
          ( ! [X6: subst,X8: term,X10: subst,X12: subst] :
              ( ( X4 @ X6 @ X8 @ ( comp @ X12 @ X10 ) )
             => ( X4 @ ( comp @ X6 @ X12 ) @ ( sub @ X8 @ X12 ) @ X10 ) )
         => ( ! [X14: subst,X16: term,X18: subst,X20: subst] :
                ( ( X4 @ ( comp @ X14 @ X20 ) @ ( sub @ X16 @ X20 ) @ X18 )
               => ( X4 @ X14 @ X16 @ ( comp @ X20 @ X18 ) ) )
           => ( ! [X22: term] :
                  ( ( hoasvar @ id @ X22 @ id )
                 => ( X4 @ id @ X22 @ id ) )
             => ! [X24: term] :
                  ( ( var @ X24 )
                 => ( X4 @ id @ X24 @ id ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasapnotvar,axiom,
    ( hoasapnotvar
    = ( ! [A: term,B: term] :
          ~ ( hoasvar @ id @ ( hoasap @ id @ A @ id @ B ) @ id ) ) ) ).

thf('5',plain,
    ( hoasapnotvar
    = ( ! [X4: term,X6: term] :
          ~ ( hoasvar @ id @ ( hoasap @ id @ X4 @ id @ X6 ) @ id ) ) ),
    define([status(thm)]) ).

thf(hoaslamnotvar,axiom,
    ( hoaslamnotvar
    = ( ! [F: subst > term > term] :
          ( ! [M: subst,A: term,N: subst] :
              ( ( sub @ ( F @ M @ A ) @ N )
              = ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
         => ~ ( hoasvar @ id
              @ ( hoaslam @ id
                @ ^ [M: subst,A: term] : ( F @ M @ A ) )
              @ id ) ) ) ) ).

thf('6',plain,
    ( hoaslamnotvar
    = ( ! [X4: subst > term > term] :
          ( ! [X6: subst,X8: term,X10: subst] :
              ( ( sub @ ( X4 @ X6 @ X8 ) @ X10 )
              = ( X4 @ ( comp @ X6 @ X10 ) @ ( sub @ X8 @ X10 ) ) )
         => ~ ( hoasvar @ id
              @ ( hoaslam @ id
                @ ^ [V_1: subst,V_2: term] : ( X4 @ V_1 @ V_2 ) )
              @ id ) ) ) ),
    define([status(thm)]) ).

thf(hoaslamnotap,axiom,
    ( hoaslamnotap
    = ( ! [F: subst > term > term] :
          ( ! [M: subst,A: term,N: subst] :
              ( ( sub @ ( F @ M @ A ) @ N )
              = ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
         => ! [A: term,B: term] :
              ( ( hoaslam @ id
                @ ^ [M: subst,C: term] : ( F @ M @ C ) )
             != ( hoasap @ id @ A @ id @ B ) ) ) ) ) ).

thf('7',plain,
    ( hoaslamnotap
    = ( ! [X4: subst > term > term] :
          ( ! [X6: subst,X8: term,X10: subst] :
              ( ( sub @ ( X4 @ X6 @ X8 ) @ X10 )
              = ( X4 @ ( comp @ X6 @ X10 ) @ ( sub @ X8 @ X10 ) ) )
         => ! [X12: term,X14: term] :
              ( ( hoaslam @ id
                @ ^ [V_1: subst,V_2: term] : ( X4 @ V_1 @ V_2 ) )
             != ( hoasap @ id @ X12 @ id @ X14 ) ) ) ) ),
    define([status(thm)]) ).

thf(hoaslaminj,axiom,
    ( hoaslaminj
    = ( ! [F: subst > term > term] :
          ( ! [M: subst,A: term,N: subst] :
              ( ( sub @ ( F @ M @ A ) @ N )
              = ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
         => ! [G: subst > term > term] :
              ( ! [M: subst,A: term,N: subst] :
                  ( ( sub @ ( G @ M @ A ) @ N )
                  = ( G @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
             => ( ( ( hoaslam @ id
                    @ ^ [M: subst,A: term] : ( F @ M @ A ) )
                  = ( hoaslam @ id
                    @ ^ [M: subst,A: term] : ( G @ M @ A ) ) )
               => ! [M: subst,A: term] :
                    ( ( F @ M @ A )
                    = ( G @ M @ A ) ) ) ) ) ) ) ).

thf('8',plain,
    ( hoaslaminj
    = ( ! [X4: subst > term > term] :
          ( ! [X6: subst,X8: term,X10: subst] :
              ( ( sub @ ( X4 @ X6 @ X8 ) @ X10 )
              = ( X4 @ ( comp @ X6 @ X10 ) @ ( sub @ X8 @ X10 ) ) )
         => ! [X12: subst > term > term] :
              ( ! [X14: subst,X16: term,X18: subst] :
                  ( ( sub @ ( X12 @ X14 @ X16 ) @ X18 )
                  = ( X12 @ ( comp @ X14 @ X18 ) @ ( sub @ X16 @ X18 ) ) )
             => ( ( ( hoaslam @ id
                    @ ^ [V_1: subst,V_2: term] : ( X4 @ V_1 @ V_2 ) )
                  = ( hoaslam @ id
                    @ ^ [V_3: subst,V_4: term] : ( X12 @ V_3 @ V_4 ) ) )
               => ! [X20: subst,X22: term] :
                    ( ( X4 @ X20 @ X22 )
                    = ( X12 @ X20 @ X22 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasapinj2,axiom,
    ( hoasapinj2
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( hoasap @ id @ A @ id @ C )
            = ( hoasap @ id @ B @ id @ D ) )
         => ( C = D ) ) ) ) ).

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

thf(hoasapinj1,axiom,
    ( hoasapinj1
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( hoasap @ id @ A @ id @ C )
            = ( hoasap @ id @ B @ id @ D ) )
         => ( A = B ) ) ) ) ).

thf('10',plain,
    ( hoasapinj1
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( hoasap @ id @ X4 @ id @ X8 )
            = ( hoasap @ id @ X6 @ id @ X10 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(hoasvar,axiom,
    ( hoasvar
    = ( ^ [M: subst,A: term,N: subst] : ( var @ ( sub @ A @ N ) ) ) ) ).

thf('11',plain,
    ( hoasvar
    = ( ^ [M: subst,A: term,N: subst] : ( var @ ( sub @ A @ N ) ) ) ),
    inference(simplify_rw_rule,[status(thm)],[hoasvar]) ).

thf('12',plain,
    ( hoasvar
    = ( ^ [V_1: subst,V_2: term,V_3: subst] : ( var @ ( sub @ V_2 @ V_3 ) ) ) ),
    define([status(thm)]) ).

thf(hoaslam,axiom,
    ( hoaslam
    = ( ^ [M: subst,F: subst > term > term] : ( lam @ ( F @ sh @ one ) ) ) ) ).

thf('13',plain,
    ( hoaslam
    = ( ^ [M: subst,F: subst > term > term] : ( lam @ ( F @ sh @ one ) ) ) ),
    inference(simplify_rw_rule,[status(thm)],[hoaslam]) ).

thf('14',plain,
    ( hoaslam
    = ( ^ [V_1: subst,V_2: subst > term > term] : ( lam @ ( V_2 @ sh @ one ) ) ) ),
    define([status(thm)]) ).

thf(hoasap,axiom,
    ( hoasap
    = ( ^ [M: subst,A: term,N: subst,B: term] : ( ap @ ( sub @ A @ N ) @ B ) ) ) ).

thf('15',plain,
    ( hoasap
    = ( ^ [M: subst,A: term,N: subst,B: term] : ( ap @ ( sub @ A @ N ) @ B ) ) ),
    inference(simplify_rw_rule,[status(thm)],[hoasap]) ).

thf('16',plain,
    ( hoasap
    = ( ^ [V_1: subst,V_2: term,V_3: subst,V_4: term] : ( ap @ ( sub @ V_2 @ V_3 ) @ V_4 ) ) ),
    define([status(thm)]) ).

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

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

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

thf('18',plain,
    ( substmonoid
    = ( ! [X4: subst] :
          ( ( comp @ X4 @ id )
          = X4 )
      & ! [X6: subst] :
          ( ( comp @ id @ X6 )
          = X6 )
      & ! [X8: subst,X10: subst,X12: subst] :
          ( ( comp @ ( comp @ X8 @ X10 ) @ X12 )
          = ( comp @ X8 @ ( comp @ X10 @ X12 ) ) ) ) ),
    define([status(thm)]) ).

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

thf('19',plain,
    ( induction2
    = ( ! [X4: term > $o] :
          ( ! [X6: term] :
              ( ( var @ X6 )
             => ( X4 @ X6 ) )
         => ( ! [X8: term,X10: term] :
                ( ( X4 @ X8 )
               => ( ( X4 @ X10 )
                 => ( X4 @ ( ap @ X8 @ X10 ) ) ) )
           => ( ! [X12: term] :
                  ( ! [X14: term] :
                      ( ( X4 @ X14 )
                     => ( X4 @ ( sub @ X12 @ ( push @ X14 @ id ) ) ) )
                 => ( X4 @ ( lam @ X12 ) ) )
             => ! [X16: term] : ( X4 @ X16 ) ) ) ) ) ),
    define([status(thm)]) ).

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

thf('20',plain,
    ( induction2lem
    = ( ! [X4: term > $o] :
          ( ! [X6: term,X8: term] :
              ( ( X4 @ X6 )
             => ( ( X4 @ X8 )
               => ( X4 @ ( ap @ X6 @ X8 ) ) ) )
         => ( ! [X10: term] :
                ( ! [X12: term] :
                    ( ( X4 @ X12 )
                   => ( X4 @ ( sub @ X10 @ ( push @ X12 @ id ) ) ) )
               => ( X4 @ ( lam @ X10 ) ) )
           => ! [X14: term,X16: subst] :
                ( ! [X18: term] :
                    ( ( var @ X18 )
                   => ( X4 @ ( sub @ X18 @ X16 ) ) )
               => ( X4 @ ( sub @ X14 @ X16 ) ) ) ) ) ) ),
    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('21',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('22',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('23',plain,
    ( lamnotvar
    = ( ! [X4: term] :
          ~ ( var @ ( lam @ X4 ) ) ) ),
    define([status(thm)]) ).

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

thf('24',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('25',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('26',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('27',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('28',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('29',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('30',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('31',plain,
    ( ulamvarsh
    = ( ! [X4: term] :
          ( ( var @ X4 )
         => ( var @ ( sub @ X4 @ sh ) ) ) ) ),
    define([status(thm)]) ).

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

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

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

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

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

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

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

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

thf('36',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('37',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('38',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('39',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('40',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('41',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('42',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('43',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('44',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('45',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,
    hoasinduction_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 ) ) ) ) ) )
                                                 => ( ! [X114: term > $o] :
                                                        ( ! [X116: term,X118: term] :
                                                            ( ( X114 @ X116 )
                                                           => ( ( X114 @ X118 )
                                                             => ( X114 @ ( ap @ X116 @ X118 ) ) ) )
                                                       => ( ! [X120: term] :
                                                              ( ! [X122: term] :
                                                                  ( ( X114 @ X122 )
                                                                 => ( X114 @ ( sub @ X120 @ ( push @ X122 @ id ) ) ) )
                                                             => ( X114 @ ( lam @ X120 ) ) )
                                                         => ! [X124: term,X126: subst] :
                                                              ( ! [X128: term] :
                                                                  ( ( var @ X128 )
                                                                 => ( X114 @ ( sub @ X128 @ X126 ) ) )
                                                             => ( X114 @ ( sub @ X124 @ X126 ) ) ) ) )
                                                   => ( ! [X130: term > $o] :
                                                          ( ! [X132: term] :
                                                              ( ( var @ X132 )
                                                             => ( X130 @ X132 ) )
                                                         => ( ! [X134: term,X136: term] :
                                                                ( ( X130 @ X134 )
                                                               => ( ( X130 @ X136 )
                                                                 => ( X130 @ ( ap @ X134 @ X136 ) ) ) )
                                                           => ( ! [X138: term] :
                                                                  ( ! [X140: term] :
                                                                      ( ( X130 @ X140 )
                                                                     => ( X130 @ ( sub @ X138 @ ( push @ X140 @ id ) ) ) )
                                                                 => ( X130 @ ( lam @ X138 ) ) )
                                                             => ! [X142: term] : ( X130 @ X142 ) ) ) )
                                                     => ( ( ! [X148: subst,X150: subst,X152: subst] :
                                                              ( ( comp @ ( comp @ X148 @ X150 ) @ X152 )
                                                              = ( comp @ X148 @ ( comp @ X150 @ X152 ) ) )
                                                          & ! [X146: subst] :
                                                              ( ( comp @ id @ X146 )
                                                              = X146 )
                                                          & ! [X144: subst] :
                                                              ( ( comp @ X144 @ id )
                                                              = X144 ) )
                                                       => ( ( ! [X156: term,X158: subst,X160: subst] :
                                                                ( ( sub @ ( sub @ X156 @ X158 ) @ X160 )
                                                                = ( sub @ X156 @ ( comp @ X158 @ X160 ) ) )
                                                            & ! [X154: term] :
                                                                ( ( sub @ X154 @ id )
                                                                = X154 ) )
                                                         => ( ! [X162: term,X164: term,X166: term,X168: term] :
                                                                ( ( ( ap @ ( sub @ X162 @ id ) @ X166 )
                                                                  = ( ap @ ( sub @ X164 @ id ) @ X168 ) )
                                                               => ( X162 = X164 ) )
                                                           => ( ! [X170: term,X172: term,X174: term,X176: term] :
                                                                  ( ( ( ap @ ( sub @ X170 @ id ) @ X174 )
                                                                    = ( ap @ ( sub @ X172 @ id ) @ X176 ) )
                                                                 => ( X174 = X176 ) )
                                                             => ( ! [X178: subst > term > term] :
                                                                    ( ! [X180: subst,X182: term,X184: subst] :
                                                                        ( ( sub @ ( X178 @ X180 @ X182 ) @ X184 )
                                                                        = ( X178 @ ( comp @ X180 @ X184 ) @ ( sub @ X182 @ X184 ) ) )
                                                                   => ! [X186: subst > term > term] :
                                                                        ( ! [X188: subst,X190: term,X192: subst] :
                                                                            ( ( sub @ ( X186 @ X188 @ X190 ) @ X192 )
                                                                            = ( X186 @ ( comp @ X188 @ X192 ) @ ( sub @ X190 @ X192 ) ) )
                                                                       => ( ( ( lam @ ( X178 @ sh @ one ) )
                                                                            = ( lam @ ( X186 @ sh @ one ) ) )
                                                                         => ! [X194: subst,X196: term] :
                                                                              ( ( X178 @ X194 @ X196 )
                                                                              = ( X186 @ X194 @ X196 ) ) ) ) )
                                                               => ( ! [X198: subst > term > term] :
                                                                      ( ! [X200: subst,X202: term,X204: subst] :
                                                                          ( ( sub @ ( X198 @ X200 @ X202 ) @ X204 )
                                                                          = ( X198 @ ( comp @ X200 @ X204 ) @ ( sub @ X202 @ X204 ) ) )
                                                                     => ! [X206: term,X208: term] :
                                                                          ( ( lam @ ( X198 @ sh @ one ) )
                                                                         != ( ap @ ( sub @ X206 @ id ) @ X208 ) ) )
                                                                 => ( ! [X210: subst > term > term] :
                                                                        ( ! [X212: subst,X214: term,X216: subst] :
                                                                            ( ( sub @ ( X210 @ X212 @ X214 ) @ X216 )
                                                                            = ( X210 @ ( comp @ X212 @ X216 ) @ ( sub @ X214 @ X216 ) ) )
                                                                       => ~ ( var @ ( sub @ ( lam @ ( X210 @ sh @ one ) ) @ id ) ) )
                                                                   => ( ! [X218: term,X220: term] :
                                                                          ~ ( var @ ( sub @ ( ap @ ( sub @ X218 @ id ) @ X220 ) @ id ) )
                                                                     => ( ! [X222: subst > term > subst > $o] :
                                                                            ( ! [X224: subst,X226: term,X228: subst,X230: subst] :
                                                                                ( ( X222 @ X224 @ X226 @ ( comp @ X230 @ X228 ) )
                                                                               => ( X222 @ ( comp @ X224 @ X230 ) @ ( sub @ X226 @ X230 ) @ X228 ) )
                                                                           => ( ! [X232: subst,X234: term,X236: subst,X238: subst] :
                                                                                  ( ( X222 @ ( comp @ X232 @ X238 ) @ ( sub @ X234 @ X238 ) @ X236 )
                                                                                 => ( X222 @ X232 @ X234 @ ( comp @ X238 @ X236 ) ) )
                                                                             => ( ! [X240: term] :
                                                                                    ( ( var @ ( sub @ X240 @ id ) )
                                                                                   => ( X222 @ id @ X240 @ id ) )
                                                                               => ! [X242: term] :
                                                                                    ( ( var @ X242 )
                                                                                   => ( X222 @ id @ X242 @ id ) ) ) ) )
                                                                       => ( ! [X244: subst > term > subst > $o] :
                                                                              ( ! [X246: subst,X248: term,X250: subst,X252: subst] :
                                                                                  ( ( X244 @ X246 @ X248 @ ( comp @ X252 @ X250 ) )
                                                                                 => ( X244 @ ( comp @ X246 @ X252 ) @ ( sub @ X248 @ X252 ) @ X250 ) )
                                                                             => ( ! [X254: subst,X256: term,X258: subst,X260: subst] :
                                                                                    ( ( X244 @ ( comp @ X254 @ X260 ) @ ( sub @ X256 @ X260 ) @ X258 )
                                                                                   => ( X244 @ X254 @ X256 @ ( comp @ X260 @ X258 ) ) )
                                                                               => ( ! [X262: term,X264: term] :
                                                                                      ( ( X244 @ id @ X262 @ id )
                                                                                     => ( ( X244 @ id @ X264 @ id )
                                                                                       => ( X244 @ id @ ( ap @ ( sub @ X262 @ id ) @ X264 ) @ id ) ) )
                                                                                 => ! [X266: term,X268: term] :
                                                                                      ( ( X244 @ id @ X266 @ id )
                                                                                     => ( ( X244 @ id @ X268 @ id )
                                                                                       => ( X244 @ id @ ( ap @ X266 @ X268 ) @ id ) ) ) ) ) )
                                                                         => ( ! [X270: subst > term > subst > $o] :
                                                                                ( ! [X272: subst,X274: term,X276: subst,X278: subst] :
                                                                                    ( ( X270 @ X272 @ X274 @ ( comp @ X278 @ X276 ) )
                                                                                   => ( X270 @ ( comp @ X272 @ X278 ) @ ( sub @ X274 @ X278 ) @ X276 ) )
                                                                               => ( ! [X280: subst,X282: term,X284: subst,X286: subst] :
                                                                                      ( ( X270 @ ( comp @ X280 @ X286 ) @ ( sub @ X282 @ X286 ) @ X284 )
                                                                                     => ( X270 @ X280 @ X282 @ ( comp @ X286 @ X284 ) ) )
                                                                                 => ( ! [X288: subst > term > term] :
                                                                                        ( ! [X290: subst,X292: term,X294: subst] :
                                                                                            ( ( sub @ ( X288 @ X290 @ X292 ) @ X294 )
                                                                                            = ( X288 @ ( comp @ X290 @ X294 ) @ ( sub @ X292 @ X294 ) ) )
                                                                                       => ( ! [X296: term] :
                                                                                              ( ( X270 @ id @ X296 @ id )
                                                                                             => ( X270 @ id @ ( X288 @ id @ X296 ) @ id ) )
                                                                                         => ( X270 @ id @ ( lam @ ( X288 @ sh @ one ) ) @ id ) ) )
                                                                                   => ! [X298: term] :
                                                                                        ( ! [X300: term] :
                                                                                            ( ( X270 @ id @ X300 @ id )
                                                                                           => ( X270 @ id @ ( sub @ X298 @ ( push @ X300 @ id ) ) @ id ) )
                                                                                       => ( X270 @ id @ ( lam @ X298 ) @ id ) ) ) ) )
                                                                           => ! [X302: subst > term > subst > $o] :
                                                                                ( ! [X304: subst,X306: term,X308: subst,X310: subst] :
                                                                                    ( ( X302 @ X304 @ X306 @ ( comp @ X310 @ X308 ) )
                                                                                   => ( X302 @ ( comp @ X304 @ X310 ) @ ( sub @ X306 @ X310 ) @ X308 ) )
                                                                               => ( ! [X312: subst,X314: term,X316: subst,X318: subst] :
                                                                                      ( ( X302 @ ( comp @ X312 @ X318 ) @ ( sub @ X314 @ X318 ) @ X316 )
                                                                                     => ( X302 @ X312 @ X314 @ ( comp @ X318 @ X316 ) ) )
                                                                                 => ( ! [X320: term] :
                                                                                        ( ( var @ ( sub @ X320 @ id ) )
                                                                                       => ( X302 @ id @ X320 @ id ) )
                                                                                   => ( ! [X322: term,X324: term] :
                                                                                          ( ( X302 @ id @ X322 @ id )
                                                                                         => ( ( X302 @ id @ X324 @ id )
                                                                                           => ( X302 @ id @ ( ap @ ( sub @ X322 @ id ) @ X324 ) @ id ) ) )
                                                                                     => ( ! [X326: subst > term > term] :
                                                                                            ( ! [X328: subst,X330: term,X332: subst] :
                                                                                                ( ( sub @ ( X326 @ X328 @ X330 ) @ X332 )
                                                                                                = ( X326 @ ( comp @ X328 @ X332 ) @ ( sub @ X330 @ X332 ) ) )
                                                                                           => ( ! [X334: term] :
                                                                                                  ( ( X302 @ id @ X334 @ id )
                                                                                                 => ( X302 @ id @ ( X326 @ id @ X334 ) @ id ) )
                                                                                             => ( X302 @ id @ ( lam @ ( X326 @ sh @ one ) ) @ id ) ) )
                                                                                       => ! [X336: term] : ( X302 @ id @ X336 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

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 ) ) ) ) ) )
                                                   => ( ! [X114: term > $o] :
                                                          ( ! [X116: term,X118: term] :
                                                              ( ( X114 @ X116 )
                                                             => ( ( X114 @ X118 )
                                                               => ( X114 @ ( ap @ X116 @ X118 ) ) ) )
                                                         => ( ! [X120: term] :
                                                                ( ! [X122: term] :
                                                                    ( ( X114 @ X122 )
                                                                   => ( X114 @ ( sub @ X120 @ ( push @ X122 @ id ) ) ) )
                                                               => ( X114 @ ( lam @ X120 ) ) )
                                                           => ! [X124: term,X126: subst] :
                                                                ( ! [X128: term] :
                                                                    ( ( var @ X128 )
                                                                   => ( X114 @ ( sub @ X128 @ X126 ) ) )
                                                               => ( X114 @ ( sub @ X124 @ X126 ) ) ) ) )
                                                     => ( ! [X130: term > $o] :
                                                            ( ! [X132: term] :
                                                                ( ( var @ X132 )
                                                               => ( X130 @ X132 ) )
                                                           => ( ! [X134: term,X136: term] :
                                                                  ( ( X130 @ X134 )
                                                                 => ( ( X130 @ X136 )
                                                                   => ( X130 @ ( ap @ X134 @ X136 ) ) ) )
                                                             => ( ! [X138: term] :
                                                                    ( ! [X140: term] :
                                                                        ( ( X130 @ X140 )
                                                                       => ( X130 @ ( sub @ X138 @ ( push @ X140 @ id ) ) ) )
                                                                   => ( X130 @ ( lam @ X138 ) ) )
                                                               => ! [X142: term] : ( X130 @ X142 ) ) ) )
                                                       => ( ( ! [X148: subst,X150: subst,X152: subst] :
                                                                ( ( comp @ ( comp @ X148 @ X150 ) @ X152 )
                                                                = ( comp @ X148 @ ( comp @ X150 @ X152 ) ) )
                                                            & ! [X146: subst] :
                                                                ( ( comp @ id @ X146 )
                                                                = X146 )
                                                            & ! [X144: subst] :
                                                                ( ( comp @ X144 @ id )
                                                                = X144 ) )
                                                         => ( ( ! [X156: term,X158: subst,X160: subst] :
                                                                  ( ( sub @ ( sub @ X156 @ X158 ) @ X160 )
                                                                  = ( sub @ X156 @ ( comp @ X158 @ X160 ) ) )
                                                              & ! [X154: term] :
                                                                  ( ( sub @ X154 @ id )
                                                                  = X154 ) )
                                                           => ( ! [X162: term,X164: term,X166: term,X168: term] :
                                                                  ( ( ( ap @ ( sub @ X162 @ id ) @ X166 )
                                                                    = ( ap @ ( sub @ X164 @ id ) @ X168 ) )
                                                                 => ( X162 = X164 ) )
                                                             => ( ! [X170: term,X172: term,X174: term,X176: term] :
                                                                    ( ( ( ap @ ( sub @ X170 @ id ) @ X174 )
                                                                      = ( ap @ ( sub @ X172 @ id ) @ X176 ) )
                                                                   => ( X174 = X176 ) )
                                                               => ( ! [X178: subst > term > term] :
                                                                      ( ! [X180: subst,X182: term,X184: subst] :
                                                                          ( ( sub @ ( X178 @ X180 @ X182 ) @ X184 )
                                                                          = ( X178 @ ( comp @ X180 @ X184 ) @ ( sub @ X182 @ X184 ) ) )
                                                                     => ! [X186: subst > term > term] :
                                                                          ( ! [X188: subst,X190: term,X192: subst] :
                                                                              ( ( sub @ ( X186 @ X188 @ X190 ) @ X192 )
                                                                              = ( X186 @ ( comp @ X188 @ X192 ) @ ( sub @ X190 @ X192 ) ) )
                                                                         => ( ( ( lam @ ( X178 @ sh @ one ) )
                                                                              = ( lam @ ( X186 @ sh @ one ) ) )
                                                                           => ! [X194: subst,X196: term] :
                                                                                ( ( X178 @ X194 @ X196 )
                                                                                = ( X186 @ X194 @ X196 ) ) ) ) )
                                                                 => ( ! [X198: subst > term > term] :
                                                                        ( ! [X200: subst,X202: term,X204: subst] :
                                                                            ( ( sub @ ( X198 @ X200 @ X202 ) @ X204 )
                                                                            = ( X198 @ ( comp @ X200 @ X204 ) @ ( sub @ X202 @ X204 ) ) )
                                                                       => ! [X206: term,X208: term] :
                                                                            ( ( lam @ ( X198 @ sh @ one ) )
                                                                           != ( ap @ ( sub @ X206 @ id ) @ X208 ) ) )
                                                                   => ( ! [X210: subst > term > term] :
                                                                          ( ! [X212: subst,X214: term,X216: subst] :
                                                                              ( ( sub @ ( X210 @ X212 @ X214 ) @ X216 )
                                                                              = ( X210 @ ( comp @ X212 @ X216 ) @ ( sub @ X214 @ X216 ) ) )
                                                                         => ~ ( var @ ( sub @ ( lam @ ( X210 @ sh @ one ) ) @ id ) ) )
                                                                     => ( ! [X218: term,X220: term] :
                                                                            ~ ( var @ ( sub @ ( ap @ ( sub @ X218 @ id ) @ X220 ) @ id ) )
                                                                       => ( ! [X222: subst > term > subst > $o] :
                                                                              ( ! [X224: subst,X226: term,X228: subst,X230: subst] :
                                                                                  ( ( X222 @ X224 @ X226 @ ( comp @ X230 @ X228 ) )
                                                                                 => ( X222 @ ( comp @ X224 @ X230 ) @ ( sub @ X226 @ X230 ) @ X228 ) )
                                                                             => ( ! [X232: subst,X234: term,X236: subst,X238: subst] :
                                                                                    ( ( X222 @ ( comp @ X232 @ X238 ) @ ( sub @ X234 @ X238 ) @ X236 )
                                                                                   => ( X222 @ X232 @ X234 @ ( comp @ X238 @ X236 ) ) )
                                                                               => ( ! [X240: term] :
                                                                                      ( ( var @ ( sub @ X240 @ id ) )
                                                                                     => ( X222 @ id @ X240 @ id ) )
                                                                                 => ! [X242: term] :
                                                                                      ( ( var @ X242 )
                                                                                     => ( X222 @ id @ X242 @ id ) ) ) ) )
                                                                         => ( ! [X244: subst > term > subst > $o] :
                                                                                ( ! [X246: subst,X248: term,X250: subst,X252: subst] :
                                                                                    ( ( X244 @ X246 @ X248 @ ( comp @ X252 @ X250 ) )
                                                                                   => ( X244 @ ( comp @ X246 @ X252 ) @ ( sub @ X248 @ X252 ) @ X250 ) )
                                                                               => ( ! [X254: subst,X256: term,X258: subst,X260: subst] :
                                                                                      ( ( X244 @ ( comp @ X254 @ X260 ) @ ( sub @ X256 @ X260 ) @ X258 )
                                                                                     => ( X244 @ X254 @ X256 @ ( comp @ X260 @ X258 ) ) )
                                                                                 => ( ! [X262: term,X264: term] :
                                                                                        ( ( X244 @ id @ X262 @ id )
                                                                                       => ( ( X244 @ id @ X264 @ id )
                                                                                         => ( X244 @ id @ ( ap @ ( sub @ X262 @ id ) @ X264 ) @ id ) ) )
                                                                                   => ! [X266: term,X268: term] :
                                                                                        ( ( X244 @ id @ X266 @ id )
                                                                                       => ( ( X244 @ id @ X268 @ id )
                                                                                         => ( X244 @ id @ ( ap @ X266 @ X268 ) @ id ) ) ) ) ) )
                                                                           => ( ! [X270: subst > term > subst > $o] :
                                                                                  ( ! [X272: subst,X274: term,X276: subst,X278: subst] :
                                                                                      ( ( X270 @ X272 @ X274 @ ( comp @ X278 @ X276 ) )
                                                                                     => ( X270 @ ( comp @ X272 @ X278 ) @ ( sub @ X274 @ X278 ) @ X276 ) )
                                                                                 => ( ! [X280: subst,X282: term,X284: subst,X286: subst] :
                                                                                        ( ( X270 @ ( comp @ X280 @ X286 ) @ ( sub @ X282 @ X286 ) @ X284 )
                                                                                       => ( X270 @ X280 @ X282 @ ( comp @ X286 @ X284 ) ) )
                                                                                   => ( ! [X288: subst > term > term] :
                                                                                          ( ! [X290: subst,X292: term,X294: subst] :
                                                                                              ( ( sub @ ( X288 @ X290 @ X292 ) @ X294 )
                                                                                              = ( X288 @ ( comp @ X290 @ X294 ) @ ( sub @ X292 @ X294 ) ) )
                                                                                         => ( ! [X296: term] :
                                                                                                ( ( X270 @ id @ X296 @ id )
                                                                                               => ( X270 @ id @ ( X288 @ id @ X296 ) @ id ) )
                                                                                           => ( X270 @ id @ ( lam @ ( X288 @ sh @ one ) ) @ id ) ) )
                                                                                     => ! [X298: term] :
                                                                                          ( ! [X300: term] :
                                                                                              ( ( X270 @ id @ X300 @ id )
                                                                                             => ( X270 @ id @ ( sub @ X298 @ ( push @ X300 @ id ) ) @ id ) )
                                                                                         => ( X270 @ id @ ( lam @ X298 ) @ id ) ) ) ) )
                                                                             => ! [X302: subst > term > subst > $o] :
                                                                                  ( ! [X304: subst,X306: term,X308: subst,X310: subst] :
                                                                                      ( ( X302 @ X304 @ X306 @ ( comp @ X310 @ X308 ) )
                                                                                     => ( X302 @ ( comp @ X304 @ X310 ) @ ( sub @ X306 @ X310 ) @ X308 ) )
                                                                                 => ( ! [X312: subst,X314: term,X316: subst,X318: subst] :
                                                                                        ( ( X302 @ ( comp @ X312 @ X318 ) @ ( sub @ X314 @ X318 ) @ X316 )
                                                                                       => ( X302 @ X312 @ X314 @ ( comp @ X318 @ X316 ) ) )
                                                                                   => ( ! [X320: term] :
                                                                                          ( ( var @ ( sub @ X320 @ id ) )
                                                                                         => ( X302 @ id @ X320 @ id ) )
                                                                                     => ( ! [X322: term,X324: term] :
                                                                                            ( ( X302 @ id @ X322 @ id )
                                                                                           => ( ( X302 @ id @ X324 @ id )
                                                                                             => ( X302 @ id @ ( ap @ ( sub @ X322 @ id ) @ X324 ) @ id ) ) )
                                                                                       => ( ! [X326: subst > term > term] :
                                                                                              ( ! [X328: subst,X330: term,X332: subst] :
                                                                                                  ( ( sub @ ( X326 @ X328 @ X330 ) @ X332 )
                                                                                                  = ( X326 @ ( comp @ X328 @ X332 ) @ ( sub @ X330 @ X332 ) ) )
                                                                                             => ( ! [X334: term] :
                                                                                                    ( ( X302 @ id @ X334 @ id )
                                                                                                   => ( X302 @ id @ ( X326 @ id @ X334 ) @ id ) )
                                                                                               => ( X302 @ id @ ( lam @ ( X326 @ sh @ one ) ) @ id ) ) )
                                                                                         => ! [X336: term] : ( X302 @ id @ X336 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y1 )
                                                                     => ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( var @ Y3 )
                                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term > $o] :
                                                              ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( var @ Y1 )
                                                                   => ( Y0 @ Y1 ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y1 )
                                                                         => ( ( Y0 @ Y2 )
                                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ Y2 )
                                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                       => ( ( ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                            & ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( ( comp @ id @ Y0 )
                                                                  = Y0 ) )
                                                            & ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( ( comp @ Y0 @ id )
                                                                  = Y0 ) ) )
                                                         => ( ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                              & ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( ( sub @ Y0 @ id )
                                                                    = Y0 ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                               => ( Y0 = Y1 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: term] :
                                                                      ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                                 => ( Y2 = Y3 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y0: subst > term > term] :
                                                                        ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y1: subst > term > term] :
                                                                              ( ( !!
                                                                                @ ^ [Y2: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                             => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                                  = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                               => ( !!
                                                                                  @ ^ [Y2: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: term] :
                                                                                          ( ( Y0 @ Y2 @ Y3 )
                                                                                          = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y0: subst > term > term] :
                                                                          ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( ( lam @ ( Y0 @ sh @ one ) )
                                                                                   != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y0: subst > term > term] :
                                                                            ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                           => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y0: term] :
                                                                              ( !!
                                                                              @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                                ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: term] :
                                                                                          ( ( var @ ( sub @ Y1 @ id ) )
                                                                                         => ( Y0 @ id @ Y1 @ id ) ) )
                                                                                   => ( !!
                                                                                      @ ^ [Y1: term] :
                                                                                          ( ( var @ Y1 )
                                                                                         => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y0: subst > term > subst > $o] :
                                                                                  ( ( !!
                                                                                    @ ^ [Y1: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y3: subst] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y4: subst] :
                                                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y1: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( ( Y0 @ id @ Y1 @ id )
                                                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                                                 => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                     => ( !!
                                                                                        @ ^ [Y1: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( ( Y0 @ id @ Y1 @ id )
                                                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                                                 => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y0: subst > term > subst > $o] :
                                                                                    ( ( !!
                                                                                      @ ^ [Y1: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y3: subst] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y4: subst] :
                                                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y1: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( !!
                                                                                                @ ^ [Y3: subst] :
                                                                                                    ( !!
                                                                                                    @ ^ [Y4: subst] :
                                                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                     => ( ( !!
                                                                                          @ ^ [Y1: subst > term > term] :
                                                                                              ( ( !!
                                                                                                @ ^ [Y2: subst] :
                                                                                                    ( !!
                                                                                                    @ ^ [Y3: term] :
                                                                                                        ( !!
                                                                                                        @ ^ [Y4: subst] :
                                                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                             => ( ( !!
                                                                                                  @ ^ [Y2: term] :
                                                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                                                     => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                               => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                       => ( !!
                                                                                          @ ^ [Y1: term] :
                                                                                              ( ( !!
                                                                                                @ ^ [Y2: term] :
                                                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                                                   => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                                             => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                                             => ( !!
                                                                                @ ^ [Y0: subst > term > subst > $o] :
                                                                                    ( ( !!
                                                                                      @ ^ [Y1: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y3: subst] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y4: subst] :
                                                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y1: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( !!
                                                                                                @ ^ [Y3: subst] :
                                                                                                    ( !!
                                                                                                    @ ^ [Y4: subst] :
                                                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                     => ( ( !!
                                                                                          @ ^ [Y1: term] :
                                                                                              ( ( var @ ( sub @ Y1 @ id ) )
                                                                                             => ( Y0 @ id @ Y1 @ id ) ) )
                                                                                       => ( ( !!
                                                                                            @ ^ [Y1: term] :
                                                                                                ( !!
                                                                                                @ ^ [Y2: term] :
                                                                                                    ( ( Y0 @ id @ Y1 @ id )
                                                                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                                                                     => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                         => ( ( !!
                                                                                              @ ^ [Y1: subst > term > term] :
                                                                                                  ( ( !!
                                                                                                    @ ^ [Y2: subst] :
                                                                                                        ( !!
                                                                                                        @ ^ [Y3: term] :
                                                                                                            ( !!
                                                                                                            @ ^ [Y4: subst] :
                                                                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                                 => ( ( !!
                                                                                                      @ ^ [Y2: term] :
                                                                                                          ( ( Y0 @ id @ Y2 @ id )
                                                                                                         => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                                   => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                           => ( !!
                                                                                              @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( var @ Y3 )
                                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( var @ Y1 )
                                                                 => ( Y0 @ Y1 ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y1 )
                                                                       => ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ Y2 )
                                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                     => ( ( ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                          & ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( ( comp @ id @ Y0 )
                                                                = Y0 ) )
                                                          & ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( ( comp @ Y0 @ id )
                                                                = Y0 ) ) )
                                                       => ( ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                            & ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( ( sub @ Y0 @ id )
                                                                  = Y0 ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                             => ( Y0 = Y1 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                               => ( Y2 = Y3 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y1: subst > term > term] :
                                                                            ( ( !!
                                                                              @ ^ [Y2: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                           => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                                = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                             => ( !!
                                                                                @ ^ [Y2: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: term] :
                                                                                        ( ( Y0 @ Y2 @ Y3 )
                                                                                        = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y0: subst > term > term] :
                                                                        ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( ( lam @ ( Y0 @ sh @ one ) )
                                                                                 != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y0: subst > term > term] :
                                                                          ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                         => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y0: term] :
                                                                            ( !!
                                                                            @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                                              ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: term] :
                                                                                        ( ( var @ ( sub @ Y1 @ id ) )
                                                                                       => ( Y0 @ id @ Y1 @ id ) ) )
                                                                                 => ( !!
                                                                                    @ ^ [Y1: term] :
                                                                                        ( ( var @ Y1 )
                                                                                       => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                                ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( ( Y0 @ id @ Y1 @ id )
                                                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                                                               => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                   => ( !!
                                                                                      @ ^ [Y1: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( ( Y0 @ id @ Y1 @ id )
                                                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                                                               => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y0: subst > term > subst > $o] :
                                                                                  ( ( !!
                                                                                    @ ^ [Y1: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y3: subst] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y4: subst] :
                                                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y1: subst > term > term] :
                                                                                            ( ( !!
                                                                                              @ ^ [Y2: subst] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y3: term] :
                                                                                                      ( !!
                                                                                                      @ ^ [Y4: subst] :
                                                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                           => ( ( !!
                                                                                                @ ^ [Y2: term] :
                                                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                                                   => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                             => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                     => ( !!
                                                                                        @ ^ [Y1: term] :
                                                                                            ( ( !!
                                                                                              @ ^ [Y2: term] :
                                                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                                                 => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                                           => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                                           => ( !!
                                                                              @ ^ [Y0: subst > term > subst > $o] :
                                                                                  ( ( !!
                                                                                    @ ^ [Y1: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y3: subst] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y4: subst] :
                                                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y1: term] :
                                                                                            ( ( var @ ( sub @ Y1 @ id ) )
                                                                                           => ( Y0 @ id @ Y1 @ id ) ) )
                                                                                     => ( ( !!
                                                                                          @ ^ [Y1: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y2: term] :
                                                                                                  ( ( Y0 @ id @ Y1 @ id )
                                                                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                                                                   => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                       => ( ( !!
                                                                                            @ ^ [Y1: subst > term > term] :
                                                                                                ( ( !!
                                                                                                  @ ^ [Y2: subst] :
                                                                                                      ( !!
                                                                                                      @ ^ [Y3: term] :
                                                                                                          ( !!
                                                                                                          @ ^ [Y4: subst] :
                                                                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                               => ( ( !!
                                                                                                    @ ^ [Y2: term] :
                                                                                                        ( ( Y0 @ id @ Y2 @ id )
                                                                                                       => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                                 => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                         => ( !!
                                                                                            @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( var @ Y3 )
                                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( var @ Y1 )
                                                               => ( Y0 @ Y1 ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y1 )
                                                                     => ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                   => ( ( ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                        & ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( ( comp @ id @ Y0 )
                                                              = Y0 ) )
                                                        & ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( ( comp @ Y0 @ id )
                                                              = Y0 ) ) )
                                                     => ( ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                          & ( !!
                                                            @ ^ [Y0: term] :
                                                                ( ( sub @ Y0 @ id )
                                                                = Y0 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                           => ( Y0 = Y1 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                             => ( Y2 = Y3 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y1: subst > term > term] :
                                                                          ( ( !!
                                                                            @ ^ [Y2: subst] :
                                                                                ( !!
                                                                                @ ^ [Y3: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                         => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                              = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                           => ( !!
                                                                              @ ^ [Y2: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: term] :
                                                                                      ( ( Y0 @ Y2 @ Y3 )
                                                                                      = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( ( lam @ ( Y0 @ sh @ one ) )
                                                                               != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y0: subst > term > term] :
                                                                        ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                       => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y0: term] :
                                                                          ( !!
                                                                          @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                                            ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: term] :
                                                                                      ( ( var @ ( sub @ Y1 @ id ) )
                                                                                     => ( Y0 @ id @ Y1 @ id ) ) )
                                                                               => ( !!
                                                                                  @ ^ [Y1: term] :
                                                                                      ( ( var @ Y1 )
                                                                                     => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                                              ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( ( Y0 @ id @ Y1 @ id )
                                                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                                                             => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                 => ( !!
                                                                                    @ ^ [Y1: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( ( Y0 @ id @ Y1 @ id )
                                                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                                                             => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                                ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: subst > term > term] :
                                                                                          ( ( !!
                                                                                            @ ^ [Y2: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y3: term] :
                                                                                                    ( !!
                                                                                                    @ ^ [Y4: subst] :
                                                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                         => ( ( !!
                                                                                              @ ^ [Y2: term] :
                                                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                                                 => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                           => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                   => ( !!
                                                                                      @ ^ [Y1: term] :
                                                                                          ( ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( ( Y0 @ id @ Y2 @ id )
                                                                                               => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                                         => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                                ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: term] :
                                                                                          ( ( var @ ( sub @ Y1 @ id ) )
                                                                                         => ( Y0 @ id @ Y1 @ id ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y1: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( ( Y0 @ id @ Y1 @ id )
                                                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                                                 => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                     => ( ( !!
                                                                                          @ ^ [Y1: subst > term > term] :
                                                                                              ( ( !!
                                                                                                @ ^ [Y2: subst] :
                                                                                                    ( !!
                                                                                                    @ ^ [Y3: term] :
                                                                                                        ( !!
                                                                                                        @ ^ [Y4: subst] :
                                                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                             => ( ( !!
                                                                                                  @ ^ [Y2: term] :
                                                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                                                     => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                               => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                       => ( !!
                                                                                          @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ Y1 )
                                                             => ( Y0 @ Y1 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                 => ( ( ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                      & ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( ( comp @ id @ Y0 )
                                                            = Y0 ) )
                                                      & ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( ( comp @ Y0 @ id )
                                                            = Y0 ) ) )
                                                   => ( ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                        & ( !!
                                                          @ ^ [Y0: term] :
                                                              ( ( sub @ Y0 @ id )
                                                              = Y0 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                         => ( Y0 = Y1 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                           => ( Y2 = Y3 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: subst > term > term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: subst] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                       => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                            = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y2: subst] :
                                                                                ( !!
                                                                                @ ^ [Y3: term] :
                                                                                    ( ( Y0 @ Y2 @ Y3 )
                                                                                    = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( lam @ ( Y0 @ sh @ one ) )
                                                                             != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                     => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y0: term] :
                                                                        ( !!
                                                                        @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                                          ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: term] :
                                                                                    ( ( var @ ( sub @ Y1 @ id ) )
                                                                                   => ( Y0 @ id @ Y1 @ id ) ) )
                                                                             => ( !!
                                                                                @ ^ [Y1: term] :
                                                                                    ( ( var @ Y1 )
                                                                                   => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                                            ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( ( Y0 @ id @ Y1 @ id )
                                                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                                                           => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                               => ( !!
                                                                                  @ ^ [Y1: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( ( Y0 @ id @ Y1 @ id )
                                                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                                                           => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                                              ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: subst > term > term] :
                                                                                        ( ( !!
                                                                                          @ ^ [Y2: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y3: term] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y4: subst] :
                                                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                       => ( ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( ( Y0 @ id @ Y2 @ id )
                                                                                               => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                         => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                 => ( !!
                                                                                    @ ^ [Y1: term] :
                                                                                        ( ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( ( Y0 @ id @ Y2 @ id )
                                                                                             => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                                       => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                                              ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: term] :
                                                                                        ( ( var @ ( sub @ Y1 @ id ) )
                                                                                       => ( Y0 @ id @ Y1 @ id ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( ( Y0 @ id @ Y1 @ id )
                                                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                                                               => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y1: subst > term > term] :
                                                                                            ( ( !!
                                                                                              @ ^ [Y2: subst] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y3: term] :
                                                                                                      ( !!
                                                                                                      @ ^ [Y4: subst] :
                                                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                           => ( ( !!
                                                                                                @ ^ [Y2: term] :
                                                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                                                   => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                             => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                     => ( !!
                                                                                        @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ Y1 )
                                                           => ( Y0 @ Y1 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                               => ( ( ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                    & ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( ( comp @ id @ Y0 )
                                                          = Y0 ) )
                                                    & ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( ( comp @ Y0 @ id )
                                                          = Y0 ) ) )
                                                 => ( ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                      & ( !!
                                                        @ ^ [Y0: term] :
                                                            ( ( sub @ Y0 @ id )
                                                            = Y0 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                       => ( Y0 = Y1 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                         => ( Y2 = Y3 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                     => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                          = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y2: subst] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( ( Y0 @ Y2 @ Y3 )
                                                                                  = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( lam @ ( Y0 @ sh @ one ) )
                                                                           != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                   => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: term] :
                                                                      ( !!
                                                                      @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                                        ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: term] :
                                                                                  ( ( var @ ( sub @ Y1 @ id ) )
                                                                                 => ( Y0 @ id @ Y1 @ id ) ) )
                                                                           => ( !!
                                                                              @ ^ [Y1: term] :
                                                                                  ( ( var @ Y1 )
                                                                                 => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                                          ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( ( Y0 @ id @ Y1 @ id )
                                                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                                                         => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                             => ( !!
                                                                                @ ^ [Y1: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( ( Y0 @ id @ Y1 @ id )
                                                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                                                         => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                                            ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: subst > term > term] :
                                                                                      ( ( !!
                                                                                        @ ^ [Y2: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: term] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                     => ( ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( ( Y0 @ id @ Y2 @ id )
                                                                                             => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                       => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                               => ( !!
                                                                                  @ ^ [Y1: term] :
                                                                                      ( ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( ( Y0 @ id @ Y2 @ id )
                                                                                           => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                                     => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                                            ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: term] :
                                                                                      ( ( var @ ( sub @ Y1 @ id ) )
                                                                                     => ( Y0 @ id @ Y1 @ id ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( ( Y0 @ id @ Y1 @ id )
                                                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                                                             => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y1: subst > term > term] :
                                                                                          ( ( !!
                                                                                            @ ^ [Y2: subst] :
                                                                                                ( !!
                                                                                                @ ^ [Y3: term] :
                                                                                                    ( !!
                                                                                                    @ ^ [Y4: subst] :
                                                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                         => ( ( !!
                                                                                              @ ^ [Y2: term] :
                                                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                                                 => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                           => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                   => ( !!
                                                                                      @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ Y1 )
                                                         => ( Y0 @ Y1 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                             => ( ( ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                  & ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( ( comp @ id @ Y0 )
                                                        = Y0 ) )
                                                  & ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( ( comp @ Y0 @ id )
                                                        = Y0 ) ) )
                                               => ( ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                    & ( !!
                                                      @ ^ [Y0: term] :
                                                          ( ( sub @ Y0 @ id )
                                                          = Y0 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                     => ( Y0 = Y1 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                       => ( Y2 = Y3 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                   => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                        = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( ( Y0 @ Y2 @ Y3 )
                                                                                = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( lam @ ( Y0 @ sh @ one ) )
                                                                         != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                 => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( ( var @ ( sub @ Y1 @ id ) )
                                                                               => ( Y0 @ id @ Y1 @ id ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( ( var @ Y1 )
                                                                               => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                                        ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( ( Y0 @ id @ Y1 @ id )
                                                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                                                       => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                           => ( !!
                                                                              @ ^ [Y1: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( ( Y0 @ id @ Y1 @ id )
                                                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                                                       => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                                          ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: subst > term > term] :
                                                                                    ( ( !!
                                                                                      @ ^ [Y2: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( ( Y0 @ id @ Y2 @ id )
                                                                                           => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                     => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                             => ( !!
                                                                                @ ^ [Y1: term] :
                                                                                    ( ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( ( Y0 @ id @ Y2 @ id )
                                                                                         => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                                   => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                                          ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: term] :
                                                                                    ( ( var @ ( sub @ Y1 @ id ) )
                                                                                   => ( Y0 @ id @ Y1 @ id ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( ( Y0 @ id @ Y1 @ id )
                                                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                                                           => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y1: subst > term > term] :
                                                                                        ( ( !!
                                                                                          @ ^ [Y2: subst] :
                                                                                              ( !!
                                                                                              @ ^ [Y3: term] :
                                                                                                  ( !!
                                                                                                  @ ^ [Y4: subst] :
                                                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                       => ( ( !!
                                                                                            @ ^ [Y2: term] :
                                                                                                ( ( Y0 @ id @ Y2 @ id )
                                                                                               => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                         => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                                 => ( !!
                                                                                    @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ Y1 )
                                                       => ( Y0 @ Y1 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                           => ( ( ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                & ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( ( comp @ id @ Y0 )
                                                      = Y0 ) )
                                                & ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( ( comp @ Y0 @ id )
                                                      = Y0 ) ) )
                                             => ( ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                  & ( !!
                                                    @ ^ [Y0: term] :
                                                        ( ( sub @ Y0 @ id )
                                                        = Y0 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                   => ( Y0 = Y1 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                     => ( Y2 = Y3 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                 => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                      = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( Y0 @ Y2 @ Y3 )
                                                                              = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( lam @ ( Y0 @ sh @ one ) )
                                                                       != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                               => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: subst > term > subst > $o] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( ( var @ ( sub @ Y1 @ id ) )
                                                                             => ( Y0 @ id @ Y1 @ id ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( ( var @ Y1 )
                                                                             => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( ( Y0 @ id @ Y1 @ id )
                                                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                                                     => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( ( Y0 @ id @ Y1 @ id )
                                                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                                                     => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                                        ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: subst > term > term] :
                                                                                  ( ( !!
                                                                                    @ ^ [Y2: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( ( Y0 @ id @ Y2 @ id )
                                                                                         => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                   => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                           => ( !!
                                                                              @ ^ [Y1: term] :
                                                                                  ( ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( ( Y0 @ id @ Y2 @ id )
                                                                                       => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                                 => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                                        ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: subst] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: term] :
                                                                                  ( ( var @ ( sub @ Y1 @ id ) )
                                                                                 => ( Y0 @ id @ Y1 @ id ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( ( Y0 @ id @ Y1 @ id )
                                                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                                                         => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y1: subst > term > term] :
                                                                                      ( ( !!
                                                                                        @ ^ [Y2: subst] :
                                                                                            ( !!
                                                                                            @ ^ [Y3: term] :
                                                                                                ( !!
                                                                                                @ ^ [Y4: subst] :
                                                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                     => ( ( !!
                                                                                          @ ^ [Y2: term] :
                                                                                              ( ( Y0 @ id @ Y2 @ id )
                                                                                             => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                       => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                               => ( !!
                                                                                  @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ Y1 )
                                                     => ( Y0 @ Y1 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                         => ( ( ( !!
                                                @ ^ [Y0: subst] :
                                                    ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                              & ( !!
                                                @ ^ [Y0: subst] :
                                                    ( ( comp @ id @ Y0 )
                                                    = Y0 ) )
                                              & ( !!
                                                @ ^ [Y0: subst] :
                                                    ( ( comp @ Y0 @ id )
                                                    = Y0 ) ) )
                                           => ( ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                & ( !!
                                                  @ ^ [Y0: term] :
                                                      ( ( sub @ Y0 @ id )
                                                      = Y0 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                 => ( Y0 = Y1 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                   => ( Y2 = Y3 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                               => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                    = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( Y0 @ Y2 @ Y3 )
                                                                            = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( lam @ ( Y0 @ sh @ one ) )
                                                                     != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                             => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: subst > term > subst > $o] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( ( var @ ( sub @ Y1 @ id ) )
                                                                           => ( Y0 @ id @ Y1 @ id ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( ( var @ Y1 )
                                                                           => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: subst > term > subst > $o] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( ( Y0 @ id @ Y1 @ id )
                                                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                                                   => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( ( Y0 @ id @ Y1 @ id )
                                                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                                                   => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: subst > term > term] :
                                                                                ( ( !!
                                                                                  @ ^ [Y2: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( ( Y0 @ id @ Y2 @ id )
                                                                                       => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                 => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                                     => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                               => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: subst] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( ( var @ ( sub @ Y1 @ id ) )
                                                                               => ( Y0 @ id @ Y1 @ id ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( ( Y0 @ id @ Y1 @ id )
                                                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                                                       => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y1: subst > term > term] :
                                                                                    ( ( !!
                                                                                      @ ^ [Y2: subst] :
                                                                                          ( !!
                                                                                          @ ^ [Y3: term] :
                                                                                              ( !!
                                                                                              @ ^ [Y4: subst] :
                                                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                   => ( ( !!
                                                                                        @ ^ [Y2: term] :
                                                                                            ( ( Y0 @ id @ Y2 @ id )
                                                                                           => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                     => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                             => ( !!
                                                                                @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ Y1 )
                                                   => ( Y0 @ Y1 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                       => ( ( ( !!
                                              @ ^ [Y0: subst] :
                                                  ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                            & ( !!
                                              @ ^ [Y0: subst] :
                                                  ( ( comp @ id @ Y0 )
                                                  = Y0 ) )
                                            & ( !!
                                              @ ^ [Y0: subst] :
                                                  ( ( comp @ Y0 @ id )
                                                  = Y0 ) ) )
                                         => ( ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                              & ( !!
                                                @ ^ [Y0: term] :
                                                    ( ( sub @ Y0 @ id )
                                                    = Y0 ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                               => ( Y0 = Y1 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                 => ( Y2 = Y3 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                             => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                  = ( lam @ ( Y1 @ sh @ one ) ) )
                                                               => ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( Y0 @ Y2 @ Y3 )
                                                                          = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( lam @ ( Y0 @ sh @ one ) )
                                                                   != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                           => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( ( var @ ( sub @ Y1 @ id ) )
                                                                         => ( Y0 @ id @ Y1 @ id ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( ( var @ Y1 )
                                                                         => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: subst > term > subst > $o] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( ( Y0 @ id @ Y1 @ id )
                                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                                 => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( ( Y0 @ id @ Y1 @ id )
                                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                                 => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: subst > term > subst > $o] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: subst > term > term] :
                                                                              ( ( !!
                                                                                @ ^ [Y2: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                                     => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                               => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                                   => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                             => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y0: subst > term > subst > $o] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( ( var @ ( sub @ Y1 @ id ) )
                                                                             => ( Y0 @ id @ Y1 @ id ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: term] :
                                                                                ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( ( Y0 @ id @ Y1 @ id )
                                                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                                                     => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y1: subst > term > term] :
                                                                                  ( ( !!
                                                                                    @ ^ [Y2: subst] :
                                                                                        ( !!
                                                                                        @ ^ [Y3: term] :
                                                                                            ( !!
                                                                                            @ ^ [Y4: subst] :
                                                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                                 => ( ( !!
                                                                                      @ ^ [Y2: term] :
                                                                                          ( ( Y0 @ id @ Y2 @ id )
                                                                                         => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                   => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                           => ( !!
                                                                              @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ Y1 )
                                                 => ( Y0 @ Y1 ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                     => ( ( ( !!
                                            @ ^ [Y0: subst] :
                                                ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                          & ( !!
                                            @ ^ [Y0: subst] :
                                                ( ( comp @ id @ Y0 )
                                                = Y0 ) )
                                          & ( !!
                                            @ ^ [Y0: subst] :
                                                ( ( comp @ Y0 @ id )
                                                = Y0 ) ) )
                                       => ( ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                            & ( !!
                                              @ ^ [Y0: term] :
                                                  ( ( sub @ Y0 @ id )
                                                  = Y0 ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                             => ( Y0 = Y1 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                               => ( Y2 = Y3 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                           => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                = ( lam @ ( Y1 @ sh @ one ) ) )
                                                             => ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( Y0 @ Y2 @ Y3 )
                                                                        = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( lam @ ( Y0 @ sh @ one ) )
                                                                 != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                         => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( ( var @ ( sub @ Y1 @ id ) )
                                                                       => ( Y0 @ id @ Y1 @ id ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( ( var @ Y1 )
                                                                       => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ id @ Y1 @ id )
                                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                                               => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ id @ Y1 @ id )
                                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                                               => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: subst > term > subst > $o] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: subst > term > term] :
                                                                            ( ( !!
                                                                              @ ^ [Y2: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                                   => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                             => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                                 => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                           => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y0: subst > term > subst > $o] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( ( var @ ( sub @ Y1 @ id ) )
                                                                           => ( Y0 @ id @ Y1 @ id ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: term] :
                                                                              ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( ( Y0 @ id @ Y1 @ id )
                                                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                                                   => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y1: subst > term > term] :
                                                                                ( ( !!
                                                                                  @ ^ [Y2: subst] :
                                                                                      ( !!
                                                                                      @ ^ [Y3: term] :
                                                                                          ( !!
                                                                                          @ ^ [Y4: subst] :
                                                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                               => ( ( !!
                                                                                    @ ^ [Y2: term] :
                                                                                        ( ( Y0 @ id @ Y2 @ id )
                                                                                       => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                                 => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                   => ( ( ( !!
                                          @ ^ [Y0: subst] :
                                              ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                        & ( !!
                                          @ ^ [Y0: subst] :
                                              ( ( comp @ id @ Y0 )
                                              = Y0 ) )
                                        & ( !!
                                          @ ^ [Y0: subst] :
                                              ( ( comp @ Y0 @ id )
                                              = Y0 ) ) )
                                     => ( ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                          & ( !!
                                            @ ^ [Y0: term] :
                                                ( ( sub @ Y0 @ id )
                                                = Y0 ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                           => ( Y0 = Y1 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                             => ( Y2 = Y3 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                         => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                              = ( lam @ ( Y1 @ sh @ one ) ) )
                                                           => ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( Y0 @ Y2 @ Y3 )
                                                                      = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( lam @ ( Y0 @ sh @ one ) )
                                                               != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                       => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( ( var @ ( sub @ Y1 @ id ) )
                                                                     => ( Y0 @ id @ Y1 @ id ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( ( var @ Y1 )
                                                                     => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ id @ Y1 @ id )
                                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                                             => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ id @ Y1 @ id )
                                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                                             => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: subst > term > term] :
                                                                          ( ( !!
                                                                            @ ^ [Y2: subst] :
                                                                                ( !!
                                                                                @ ^ [Y3: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                                 => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                           => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( ( Y0 @ id @ Y2 @ id )
                                                                               => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                         => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y0: subst > term > subst > $o] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( ( var @ ( sub @ Y1 @ id ) )
                                                                         => ( Y0 @ id @ Y1 @ id ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: term] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( ( Y0 @ id @ Y1 @ id )
                                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                                 => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y1: subst > term > term] :
                                                                              ( ( !!
                                                                                @ ^ [Y2: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: term] :
                                                                                        ( !!
                                                                                        @ ^ [Y4: subst] :
                                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                             => ( ( !!
                                                                                  @ ^ [Y2: term] :
                                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                                     => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                               => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( ( !!
                                        @ ^ [Y0: subst] :
                                            ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                      & ( !!
                                        @ ^ [Y0: subst] :
                                            ( ( comp @ id @ Y0 )
                                            = Y0 ) )
                                      & ( !!
                                        @ ^ [Y0: subst] :
                                            ( ( comp @ Y0 @ id )
                                            = Y0 ) ) )
                                   => ( ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                        & ( !!
                                          @ ^ [Y0: term] :
                                              ( ( sub @ Y0 @ id )
                                              = Y0 ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                         => ( Y0 = Y1 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                           => ( Y2 = Y3 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: subst > term > term] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                       => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                            = ( lam @ ( Y1 @ sh @ one ) ) )
                                                         => ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( Y0 @ Y2 @ Y3 )
                                                                    = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( lam @ ( Y0 @ sh @ one ) )
                                                             != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                     => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( var @ ( sub @ Y1 @ id ) )
                                                                   => ( Y0 @ id @ Y1 @ id ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( var @ Y1 )
                                                                   => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ id @ Y1 @ id )
                                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                                           => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ id @ Y1 @ id )
                                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                                           => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: subst > term > term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: subst] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( ( Y0 @ id @ Y2 @ id )
                                                                               => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                         => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ id @ Y2 @ id )
                                                                             => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                       => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y0: subst > term > subst > $o] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( ( var @ ( sub @ Y1 @ id ) )
                                                                       => ( Y0 @ id @ Y1 @ id ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ id @ Y1 @ id )
                                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                                               => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y1: subst > term > term] :
                                                                            ( ( !!
                                                                              @ ^ [Y2: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                           => ( ( !!
                                                                                @ ^ [Y2: term] :
                                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                                   => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                             => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( ( !!
                                      @ ^ [Y0: subst] :
                                          ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                    & ( !!
                                      @ ^ [Y0: subst] :
                                          ( ( comp @ id @ Y0 )
                                          = Y0 ) )
                                    & ( !!
                                      @ ^ [Y0: subst] :
                                          ( ( comp @ Y0 @ id )
                                          = Y0 ) ) )
                                 => ( ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                      & ( !!
                                        @ ^ [Y0: term] :
                                            ( ( sub @ Y0 @ id )
                                            = Y0 ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                       => ( Y0 = Y1 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                         => ( Y2 = Y3 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: subst > term > term] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                     => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                          = ( lam @ ( Y1 @ sh @ one ) ) )
                                                       => ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( Y0 @ Y2 @ Y3 )
                                                                  = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: subst > term > term] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( lam @ ( Y0 @ sh @ one ) )
                                                           != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                   => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( var @ ( sub @ Y1 @ id ) )
                                                                 => ( Y0 @ id @ Y1 @ id ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( var @ Y1 )
                                                                 => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ id @ Y1 @ id )
                                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                                         => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ id @ Y1 @ id )
                                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                                         => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ id @ Y2 @ id )
                                                                             => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                       => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ id @ Y2 @ id )
                                                                           => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                     => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y0: subst > term > subst > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( ( var @ ( sub @ Y1 @ id ) )
                                                                     => ( Y0 @ id @ Y1 @ id ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ id @ Y1 @ id )
                                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                                             => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y1: subst > term > term] :
                                                                          ( ( !!
                                                                            @ ^ [Y2: subst] :
                                                                                ( !!
                                                                                @ ^ [Y3: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                         => ( ( !!
                                                                              @ ^ [Y2: term] :
                                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                                 => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                           => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( ( !!
                                    @ ^ [Y0: subst] :
                                        ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                  & ( !!
                                    @ ^ [Y0: subst] :
                                        ( ( comp @ id @ Y0 )
                                        = Y0 ) )
                                  & ( !!
                                    @ ^ [Y0: subst] :
                                        ( ( comp @ Y0 @ id )
                                        = Y0 ) ) )
                               => ( ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                    & ( !!
                                      @ ^ [Y0: term] :
                                          ( ( sub @ Y0 @ id )
                                          = Y0 ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                     => ( Y0 = Y1 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                       => ( Y2 = Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: subst > term > term] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                   => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                        = ( lam @ ( Y1 @ sh @ one ) ) )
                                                     => ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( Y0 @ Y2 @ Y3 )
                                                                = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: subst > term > term] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( lam @ ( Y0 @ sh @ one ) )
                                                         != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: subst > term > term] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                 => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( var @ ( sub @ Y1 @ id ) )
                                                               => ( Y0 @ id @ Y1 @ id ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( var @ Y1 )
                                                               => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ id @ Y1 @ id )
                                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                                       => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ id @ Y1 @ id )
                                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                                       => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ id @ Y2 @ id )
                                                                           => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                     => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ id @ Y2 @ id )
                                                                         => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                   => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y0: subst > term > subst > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( var @ ( sub @ Y1 @ id ) )
                                                                   => ( Y0 @ id @ Y1 @ id ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ id @ Y1 @ id )
                                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                                           => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: subst > term > term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: subst] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                       => ( ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( ( Y0 @ id @ Y2 @ id )
                                                                               => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                         => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( ( !!
                                  @ ^ [Y0: subst] :
                                      ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                & ( !!
                                  @ ^ [Y0: subst] :
                                      ( ( comp @ id @ Y0 )
                                      = Y0 ) )
                                & ( !!
                                  @ ^ [Y0: subst] :
                                      ( ( comp @ Y0 @ id )
                                      = Y0 ) ) )
                             => ( ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                  & ( !!
                                    @ ^ [Y0: term] :
                                        ( ( sub @ Y0 @ id )
                                        = Y0 ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                   => ( Y0 = Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                     => ( Y2 = Y3 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: subst > term > term] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: subst > term > term] :
                                                  ( ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                 => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                      = ( lam @ ( Y1 @ sh @ one ) ) )
                                                   => ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( Y0 @ Y2 @ Y3 )
                                                              = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: subst > term > term] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( lam @ ( Y0 @ sh @ one ) )
                                                       != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: subst > term > term] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                               => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: subst > term > subst > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ ( sub @ Y1 @ id ) )
                                                             => ( Y0 @ id @ Y1 @ id ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ Y1 )
                                                             => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ id @ Y1 @ id )
                                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                                     => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ id @ Y1 @ id )
                                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                                     => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ id @ Y2 @ id )
                                                                         => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                   => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ id @ Y2 @ id )
                                                                       => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                                 => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y0: subst > term > subst > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( var @ ( sub @ Y1 @ id ) )
                                                                 => ( Y0 @ id @ Y1 @ id ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ id @ Y1 @ id )
                                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                                         => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                     => ( ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ id @ Y2 @ id )
                                                                             => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                       => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( ( !!
                                @ ^ [Y0: subst] :
                                    ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                              & ( !!
                                @ ^ [Y0: subst] :
                                    ( ( comp @ id @ Y0 )
                                    = Y0 ) )
                              & ( !!
                                @ ^ [Y0: subst] :
                                    ( ( comp @ Y0 @ id )
                                    = Y0 ) ) )
                           => ( ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                & ( !!
                                  @ ^ [Y0: term] :
                                      ( ( sub @ Y0 @ id )
                                      = Y0 ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                 => ( Y0 = Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                   => ( Y2 = Y3 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: subst > term > term] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: subst > term > term] :
                                                ( ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                               => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                    = ( lam @ ( Y1 @ sh @ one ) ) )
                                                 => ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( Y0 @ Y2 @ Y3 )
                                                            = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: subst > term > term] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( lam @ ( Y0 @ sh @ one ) )
                                                     != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: subst > term > term] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                             => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: subst > term > subst > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ ( sub @ Y1 @ id ) )
                                                           => ( Y0 @ id @ Y1 @ id ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ Y1 )
                                                           => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: subst > term > subst > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ id @ Y1 @ id )
                                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                                   => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ id @ Y1 @ id )
                                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                                   => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ id @ Y2 @ id )
                                                                       => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                 => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                     => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                               => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                               => ( !!
                                                  @ ^ [Y0: subst > term > subst > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( var @ ( sub @ Y1 @ id ) )
                                                               => ( Y0 @ id @ Y1 @ id ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ id @ Y1 @ id )
                                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                                       => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                   => ( ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ id @ Y2 @ id )
                                                                           => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                     => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( ( !!
                              @ ^ [Y0: subst] :
                                  ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                            & ( !!
                              @ ^ [Y0: subst] :
                                  ( ( comp @ id @ Y0 )
                                  = Y0 ) )
                            & ( !!
                              @ ^ [Y0: subst] :
                                  ( ( comp @ Y0 @ id )
                                  = Y0 ) ) )
                         => ( ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                              & ( !!
                                @ ^ [Y0: term] :
                                    ( ( sub @ Y0 @ id )
                                    = Y0 ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                               => ( Y0 = Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                 => ( Y2 = Y3 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: subst > term > term] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: subst > term > term] :
                                              ( ( !!
                                                @ ^ [Y2: subst] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                             => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                  = ( lam @ ( Y1 @ sh @ one ) ) )
                                               => ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( Y0 @ Y2 @ Y3 )
                                                          = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: subst > term > term] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( lam @ ( Y0 @ sh @ one ) )
                                                   != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: subst > term > term] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                           => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: subst > term > subst > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ ( sub @ Y1 @ id ) )
                                                         => ( Y0 @ id @ Y1 @ id ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ Y1 )
                                                         => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: subst > term > subst > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ id @ Y1 @ id )
                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                 => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ id @ Y1 @ id )
                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                 => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: subst > term > subst > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                     => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                               => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                   => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                             => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                             => ( !!
                                                @ ^ [Y0: subst > term > subst > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ ( sub @ Y1 @ id ) )
                                                             => ( Y0 @ id @ Y1 @ id ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ id @ Y1 @ id )
                                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                                     => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                 => ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ id @ Y2 @ id )
                                                                         => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                   => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( ( !!
                            @ ^ [Y0: subst] :
                                ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                          & ( !!
                            @ ^ [Y0: subst] :
                                ( ( comp @ id @ Y0 )
                                = Y0 ) )
                          & ( !!
                            @ ^ [Y0: subst] :
                                ( ( comp @ Y0 @ id )
                                = Y0 ) ) )
                       => ( ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                            & ( !!
                              @ ^ [Y0: term] :
                                  ( ( sub @ Y0 @ id )
                                  = Y0 ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                             => ( Y0 = Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                               => ( Y2 = Y3 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: subst > term > term] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: subst > term > term] :
                                            ( ( !!
                                              @ ^ [Y2: subst] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                           => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                = ( lam @ ( Y1 @ sh @ one ) ) )
                                             => ( !!
                                                @ ^ [Y2: subst] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( Y0 @ Y2 @ Y3 )
                                                        = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: subst > term > term] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( lam @ ( Y0 @ sh @ one ) )
                                                 != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: subst > term > term] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                         => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: subst > term > subst > $o] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ ( sub @ Y1 @ id ) )
                                                       => ( Y0 @ id @ Y1 @ id ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ Y1 )
                                                       => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: subst > term > subst > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ id @ Y1 @ id )
                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                               => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ id @ Y1 @ id )
                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                               => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: subst > term > subst > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                   => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                             => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                 => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                           => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                           => ( !!
                                              @ ^ [Y0: subst > term > subst > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ ( sub @ Y1 @ id ) )
                                                           => ( Y0 @ id @ Y1 @ id ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ id @ Y1 @ id )
                                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                                   => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ id @ Y2 @ id )
                                                                       => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                                 => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( ( !!
                          @ ^ [Y0: subst] :
                              ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                        & ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ id @ Y0 )
                              = Y0 ) )
                        & ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ Y0 @ id )
                              = Y0 ) ) )
                     => ( ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                          & ( !!
                            @ ^ [Y0: term] :
                                ( ( sub @ Y0 @ id )
                                = Y0 ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                           => ( Y0 = Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                             => ( Y2 = Y3 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: subst > term > term] :
                                    ( ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: subst] :
                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: subst > term > term] :
                                          ( ( !!
                                            @ ^ [Y2: subst] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                         => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                              = ( lam @ ( Y1 @ sh @ one ) ) )
                                           => ( !!
                                              @ ^ [Y2: subst] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( Y0 @ Y2 @ Y3 )
                                                      = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: subst > term > term] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( lam @ ( Y0 @ sh @ one ) )
                                               != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: subst > term > term] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                       => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: subst > term > subst > $o] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ ( sub @ Y1 @ id ) )
                                                     => ( Y0 @ id @ Y1 @ id ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ Y1 )
                                                     => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: subst > term > subst > $o] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ id @ Y1 @ id )
                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                             => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ id @ Y1 @ id )
                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                             => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: subst > term > subst > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                 => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                           => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ id @ Y2 @ id )
                                                               => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                         => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y0: subst > term > subst > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                                 => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                   => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ ( sub @ Y1 @ id ) )
                                                         => ( Y0 @ id @ Y1 @ id ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ id @ Y1 @ id )
                                                               => ( ( Y0 @ id @ Y2 @ id )
                                                                 => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ id @ Y2 @ id )
                                                                     => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                               => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( ( !!
                        @ ^ [Y0: subst] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                      & ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ id @ Y0 )
                            = Y0 ) )
                      & ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ Y0 @ id )
                            = Y0 ) ) )
                   => ( ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                        & ( !!
                          @ ^ [Y0: term] :
                              ( ( sub @ Y0 @ id )
                              = Y0 ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                         => ( Y0 = Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                           => ( Y2 = Y3 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: subst > term > term] :
                                  ( ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: subst] :
                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: subst > term > term] :
                                        ( ( !!
                                          @ ^ [Y2: subst] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( !!
                                                  @ ^ [Y4: subst] :
                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                       => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                            = ( lam @ ( Y1 @ sh @ one ) ) )
                                         => ( !!
                                            @ ^ [Y2: subst] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( Y0 @ Y2 @ Y3 )
                                                    = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: subst > term > term] :
                                    ( ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: subst] :
                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( lam @ ( Y0 @ sh @ one ) )
                                             != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: subst > term > term] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                     => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: subst > term > subst > $o] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ ( sub @ Y1 @ id ) )
                                                   => ( Y0 @ id @ Y1 @ id ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ Y1 )
                                                   => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: subst > term > subst > $o] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ id @ Y1 @ id )
                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                           => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ id @ Y1 @ id )
                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                           => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: subst > term > subst > $o] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ id @ Y2 @ id )
                                                               => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                         => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ id @ Y2 @ id )
                                                             => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                       => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y0: subst > term > subst > $o] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                               => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                                 => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ ( sub @ Y1 @ id ) )
                                                       => ( Y0 @ id @ Y1 @ id ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ id @ Y1 @ id )
                                                             => ( ( Y0 @ id @ Y2 @ id )
                                                               => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ id @ Y2 @ id )
                                                                   => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                             => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( ( !!
                      @ ^ [Y0: subst] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                    & ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ id @ Y0 )
                          = Y0 ) )
                    & ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ Y0 @ id )
                          = Y0 ) ) )
                 => ( ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                      & ( !!
                        @ ^ [Y0: term] :
                            ( ( sub @ Y0 @ id )
                            = Y0 ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                       => ( Y0 = Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                         => ( Y2 = Y3 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: subst > term > term] :
                                ( ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: subst] :
                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                               => ( !!
                                  @ ^ [Y1: subst > term > term] :
                                      ( ( !!
                                        @ ^ [Y2: subst] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( !!
                                                @ ^ [Y4: subst] :
                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                     => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                          = ( lam @ ( Y1 @ sh @ one ) ) )
                                       => ( !!
                                          @ ^ [Y2: subst] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( Y0 @ Y2 @ Y3 )
                                                  = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: subst > term > term] :
                                  ( ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: subst] :
                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( lam @ ( Y0 @ sh @ one ) )
                                           != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: subst > term > term] :
                                    ( ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: subst] :
                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                   => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: subst > term > subst > $o] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ ( sub @ Y1 @ id ) )
                                                 => ( Y0 @ id @ Y1 @ id ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ Y1 )
                                                 => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: subst > term > subst > $o] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ id @ Y1 @ id )
                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                         => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ id @ Y1 @ id )
                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                         => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: subst > term > subst > $o] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ id @ Y2 @ id )
                                                             => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                       => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ id @ Y2 @ id )
                                                           => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                     => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y0: subst > term > subst > $o] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                             => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                               => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ ( sub @ Y1 @ id ) )
                                                     => ( Y0 @ id @ Y1 @ id ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ id @ Y1 @ id )
                                                           => ( ( Y0 @ id @ Y2 @ id )
                                                             => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ id @ Y2 @ id )
                                                                 => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                           => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y2 )
                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( ( !!
                    @ ^ [Y0: subst] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                  & ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ id @ Y0 )
                        = Y0 ) )
                  & ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ Y0 @ id )
                        = Y0 ) ) )
               => ( ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                    & ( !!
                      @ ^ [Y0: term] :
                          ( ( sub @ Y0 @ id )
                          = Y0 ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                     => ( Y0 = Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                       => ( Y2 = Y3 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: subst > term > term] :
                              ( ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: subst] :
                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                             => ( !!
                                @ ^ [Y1: subst > term > term] :
                                    ( ( !!
                                      @ ^ [Y2: subst] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( !!
                                              @ ^ [Y4: subst] :
                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                   => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                        = ( lam @ ( Y1 @ sh @ one ) ) )
                                     => ( !!
                                        @ ^ [Y2: subst] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( Y0 @ Y2 @ Y3 )
                                                = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: subst > term > term] :
                                ( ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: subst] :
                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( lam @ ( Y0 @ sh @ one ) )
                                         != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: subst > term > term] :
                                  ( ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: subst] :
                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                 => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: subst > term > subst > $o] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ ( sub @ Y1 @ id ) )
                                               => ( Y0 @ id @ Y1 @ id ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: subst > term > subst > $o] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ id @ Y1 @ id )
                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                       => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ id @ Y1 @ id )
                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                       => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: subst > term > subst > $o] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ id @ Y2 @ id )
                                                           => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                     => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ id @ Y2 @ id )
                                                         => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                   => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y0: subst > term > subst > $o] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                           => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                             => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ ( sub @ Y1 @ id ) )
                                                   => ( Y0 @ id @ Y1 @ id ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ id @ Y1 @ id )
                                                         => ( ( Y0 @ id @ Y2 @ id )
                                                           => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ id @ Y2 @ id )
                                                               => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                         => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y2 )
                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( ( !!
                  @ ^ [Y0: subst] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                & ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ id @ Y0 )
                      = Y0 ) )
                & ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ Y0 @ id )
                      = Y0 ) ) )
             => ( ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                  & ( !!
                    @ ^ [Y0: term] :
                        ( ( sub @ Y0 @ id )
                        = Y0 ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                   => ( Y0 = Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                     => ( Y2 = Y3 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: subst > term > term] :
                            ( ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: subst] :
                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                           => ( !!
                              @ ^ [Y1: subst > term > term] :
                                  ( ( !!
                                    @ ^ [Y2: subst] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( !!
                                            @ ^ [Y4: subst] :
                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                 => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                      = ( lam @ ( Y1 @ sh @ one ) ) )
                                   => ( !!
                                      @ ^ [Y2: subst] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( Y0 @ Y2 @ Y3 )
                                              = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: subst > term > term] :
                              ( ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: subst] :
                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( lam @ ( Y0 @ sh @ one ) )
                                       != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: subst > term > term] :
                                ( ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: subst] :
                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                               => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: subst > term > subst > $o] :
                                    ( ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: subst] :
                                                  ( !!
                                                  @ ^ [Y4: subst] :
                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ ( sub @ Y1 @ id ) )
                                             => ( Y0 @ id @ Y1 @ id ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: subst > term > subst > $o] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ id @ Y1 @ id )
                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                     => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ id @ Y1 @ id )
                                                   => ( ( Y0 @ id @ Y2 @ id )
                                                     => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: subst > term > subst > $o] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: subst > term > term] :
                                                  ( ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ id @ Y2 @ id )
                                                         => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                   => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ id @ Y2 @ id )
                                                       => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                                 => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y0: subst > term > subst > $o] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ ( sub @ Y1 @ id ) )
                                                 => ( Y0 @ id @ Y1 @ id ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ id @ Y1 @ id )
                                                       => ( ( Y0 @ id @ Y2 @ id )
                                                         => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ id @ Y2 @ id )
                                                             => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                       => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    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 ) ) ) ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y2 )
                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y2 )
                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( ( !!
                @ ^ [Y0: subst] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
              & ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ id @ Y0 )
                    = Y0 ) )
              & ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ Y0 @ id )
                    = Y0 ) ) )
           => ( ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                & ( !!
                  @ ^ [Y0: term] :
                      ( ( sub @ Y0 @ id )
                      = Y0 ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                 => ( Y0 = Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                   => ( Y2 = Y3 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: subst > term > term] :
                          ( ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: subst] :
                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                         => ( !!
                            @ ^ [Y1: subst > term > term] :
                                ( ( !!
                                  @ ^ [Y2: subst] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( !!
                                          @ ^ [Y4: subst] :
                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                               => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                    = ( lam @ ( Y1 @ sh @ one ) ) )
                                 => ( !!
                                    @ ^ [Y2: subst] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( Y0 @ Y2 @ Y3 )
                                            = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: subst > term > term] :
                            ( ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: subst] :
                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( lam @ ( Y0 @ sh @ one ) )
                                     != ( ap @ ( sub @ Y1 @ id ) @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: subst > term > term] :
                              ( ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: subst] :
                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                             => ( (~) @ ( var @ ( sub @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] : ( (~) @ ( var @ ( sub @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: subst > term > subst > $o] :
                                  ( ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: subst] :
                                                ( !!
                                                @ ^ [Y4: subst] :
                                                    ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                   => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: subst] :
                                                  ( !!
                                                  @ ^ [Y4: subst] :
                                                      ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                     => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ ( sub @ Y1 @ id ) )
                                           => ( Y0 @ id @ Y1 @ id ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: subst > term > subst > $o] :
                                    ( ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: subst] :
                                                  ( !!
                                                  @ ^ [Y4: subst] :
                                                      ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                     => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                       => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ id @ Y1 @ id )
                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                   => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ id @ Y1 @ id )
                                                 => ( ( Y0 @ id @ Y2 @ id )
                                                   => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: subst > term > subst > $o] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: subst > term > term] :
                                                ( ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ id @ Y2 @ id )
                                                       => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                 => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ id @ Y2 @ id )
                                                     => ( Y0 @ id @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) @ id ) ) )
                                               => ( Y0 @ id @ ( lam @ Y1 ) @ id ) ) ) ) ) ) )
                               => ( !!
                                  @ ^ [Y0: subst > term > subst > $o] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                                                       => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                                                         => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ ( sub @ Y1 @ id ) )
                                               => ( Y0 @ id @ Y1 @ id ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ id @ Y1 @ id )
                                                     => ( ( Y0 @ id @ Y2 @ id )
                                                       => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ id @ Y2 @ id )
                                                           => ( Y0 @ id @ ( Y1 @ id @ Y2 ) @ id ) ) )
                                                     => ( Y0 @ id @ ( lam @ ( Y1 @ sh @ one ) ) @ id ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] : ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl113]) ).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

thf(zip_derived_cl307,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                       => ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( '#sk733' @ id @ Y0 @ id ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( ( '#sk733' @ id @ Y0 @ id )
                     => ( ( '#sk733' @ id @ Y1 @ id )
                       => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: subst > term > term] :
                    ( ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: subst] :
                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( '#sk733' @ id @ Y1 @ id )
                           => ( '#sk733' @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                     => ( '#sk733' @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
             => ( !!
                @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl292]) ).

thf(zip_derived_cl317,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( '#sk733' @ id @ Y0 @ id ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( '#sk733' @ id @ Y0 @ id )
                   => ( ( '#sk733' @ id @ Y1 @ id )
                     => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: subst > term > term] :
                  ( ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: subst] :
                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( '#sk733' @ id @ Y1 @ id )
                         => ( '#sk733' @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                   => ( '#sk733' @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
           => ( !!
              @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl307]) ).

thf(zip_derived_cl325,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ ( sub @ Y0 @ id ) )
           => ( '#sk733' @ id @ Y0 @ id ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( '#sk733' @ id @ Y1 @ id )
                       => ( '#sk733' @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( '#sk733' @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl317]) ).

thf(zip_derived_cl333,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( '#sk733' @ id @ Y1 @ id )
                     => ( '#sk733' @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( '#sk733' @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl325]) ).

thf(zip_derived_cl344,plain,
    ~ ( ( !!
        @ ^ [Y0: subst > term > term] :
            ( ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
             => ( '#sk733' @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
     => ( !!
        @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl333]) ).

thf(zip_derived_cl357,plain,
    ~ ( !!
      @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl344]) ).

thf(zip_derived_cl369,plain,
    ~ ( '#sk733' @ id @ '#sk1677' @ id ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl357]) ).

thf(zip_derived_cl332,plain,
    ( !!
    @ ^ [Y0: term] :
        ( ( var @ ( sub @ Y0 @ id ) )
       => ( '#sk733' @ id @ Y0 @ id ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl325]) ).

thf(zip_derived_cl342,plain,
    ! [X2: term] :
      ( ( var @ ( sub @ X2 @ id ) )
     => ( '#sk733' @ id @ X2 @ id ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl332]) ).

thf(zip_derived_cl354,plain,
    ! [X2: term] :
      ( ~ ( var @ ( sub @ X2 @ id ) )
      | ( '#sk733' @ id @ X2 @ id ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl342]) ).

thf(zip_derived_cl8,plain,
    ( !!
    @ ^ [Y0: term] :
        ( ( sub @ Y0 @ id )
        = Y0 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl5]) ).

thf(zip_derived_cl12,plain,
    ! [X2: term] :
      ( ( sub @ X2 @ id )
      = X2 ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl8]) ).

thf(zip_derived_cl17,plain,
    ! [X2: term] :
      ( ( sub @ X2 @ id )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl12]) ).

thf(zip_derived_cl501,plain,
    ! [X2: term] :
      ( ~ ( var @ X2 )
      | ( '#sk733' @ id @ X2 @ id ) ),
    inference(demod,[status(thm)],[zip_derived_cl354,zip_derived_cl17]) ).

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

thf(zip_derived_cl303,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                       => ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( X2 @ id @ Y1 @ id )
                       => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
               => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl291]) ).

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

thf(zip_derived_cl322,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( X2 @ ( '#sk708' @ X2 ) @ Y0 @ ( comp @ Y2 @ Y1 ) )
                     => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( X2 @ id @ Y1 @ id )
                       => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
               => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl315]) ).

thf(zip_derived_cl329,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ Y1 @ Y0 ) )
                 => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ Y1 ) @ ( sub @ ( '#sk839' @ X2 ) @ Y1 ) @ Y0 ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( X2 @ id @ Y1 @ id )
                       => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
               => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl322]) ).

thf(zip_derived_cl339,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ Y0 @ ( '#sk967' @ X2 ) ) )
             => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ Y0 ) @ ( sub @ ( '#sk839' @ X2 ) @ Y0 ) @ ( '#sk967' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( X2 @ id @ Y1 @ id )
                       => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
               => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl329]) ).

thf(zip_derived_cl351,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
         => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( X2 @ id @ Y1 @ id )
                       => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
               => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl339]) ).

thf(zip_derived_cl363,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( X2 @ id @ Y1 @ id )
                       => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
               => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl351]) ).

thf(zip_derived_cl375,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl363]) ).

thf(zip_derived_cl384,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 )
                     => ( X2 @ ( '#sk1549' @ X2 ) @ Y0 @ ( comp @ Y2 @ Y1 ) ) ) ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl375]) ).

thf(zip_derived_cl392,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y1 ) @ ( sub @ ( '#sk1760' @ X2 ) @ Y1 ) @ Y0 )
                 => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ Y1 @ Y0 ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl384]) ).

thf(zip_derived_cl402,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y0 ) @ ( sub @ ( '#sk1760' @ X2 ) @ Y0 ) @ ( '#sk1944' @ X2 ) )
             => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ Y0 @ ( '#sk1944' @ X2 ) ) ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl392]) ).

thf(zip_derived_cl414,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl402]) ).

thf(zip_derived_cl265,plain,
    ( !!
    @ ^ [Y0: subst > term > subst > $o] :
        ( ( !!
          @ ^ [Y1: subst] :
              ( !!
              @ ^ [Y2: term] :
                  ( !!
                  @ ^ [Y3: subst] :
                      ( !!
                      @ ^ [Y4: subst] :
                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( !!
                        @ ^ [Y4: subst] :
                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y1: term] :
                  ( ( var @ ( sub @ Y1 @ id ) )
                 => ( Y0 @ id @ Y1 @ id ) ) )
           => ( !!
              @ ^ [Y1: term] :
                  ( ( var @ Y1 )
                 => ( Y0 @ id @ Y1 @ id ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl252]) ).

thf(zip_derived_cl279,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                       => ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( X2 @ id @ Y0 @ id ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( X2 @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl265]) ).

thf(zip_derived_cl289,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                         => ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( X2 @ id @ Y0 @ id ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( X2 @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl279]) ).

thf(zip_derived_cl301,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( X2 @ ( '#sk708' @ X2 ) @ Y0 @ ( comp @ Y2 @ Y1 ) )
                     => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( X2 @ id @ Y0 @ id ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( X2 @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl289]) ).

thf(zip_derived_cl313,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ Y1 @ Y0 ) )
                 => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ Y1 ) @ ( sub @ ( '#sk839' @ X2 ) @ Y1 ) @ Y0 ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( X2 @ id @ Y0 @ id ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( X2 @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl301]) ).

thf(zip_derived_cl320,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ Y0 @ ( '#sk967' @ X2 ) ) )
             => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ Y0 ) @ ( sub @ ( '#sk839' @ X2 ) @ Y0 ) @ ( '#sk967' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( X2 @ id @ Y0 @ id ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( X2 @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl313]) ).

thf(zip_derived_cl327,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
         => ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( X2 @ id @ Y0 @ id ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( X2 @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl320]) ).

thf(zip_derived_cl337,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ ( sub @ Y0 @ id ) )
               => ( X2 @ id @ Y0 @ id ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( X2 @ id @ Y0 @ id ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl327]) ).

thf(zip_derived_cl348,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( X2 @ id @ Y0 @ id ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ id @ Y0 @ id ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl337]) ).

thf(zip_derived_cl360,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 )
                     => ( X2 @ ( '#sk1549' @ X2 ) @ Y0 @ ( comp @ Y2 @ Y1 ) ) ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( X2 @ id @ Y0 @ id ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ id @ Y0 @ id ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl348]) ).

thf(zip_derived_cl372,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y1 ) @ ( sub @ ( '#sk1760' @ X2 ) @ Y1 ) @ Y0 )
                 => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ Y1 @ Y0 ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( X2 @ id @ Y0 @ id ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ id @ Y0 @ id ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl360]) ).

thf(zip_derived_cl381,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y0 ) @ ( sub @ ( '#sk1760' @ X2 ) @ Y0 ) @ ( '#sk1944' @ X2 ) )
             => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ Y0 @ ( '#sk1944' @ X2 ) ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( X2 @ id @ Y0 @ id ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ id @ Y0 @ id ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl372]) ).

thf(zip_derived_cl389,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( X2 @ id @ Y0 @ id ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ id @ Y0 @ id ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl381]) ).

thf(zip_derived_cl389_001,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( X2 @ id @ Y0 @ id ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ id @ Y0 @ id ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl381]) ).

thf(zip_derived_cl397,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( '#form2417' @ X2 )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ ( sub @ Y0 @ id ) )
             => ( X2 @ id @ Y0 @ id ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ id @ Y0 @ id ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl399,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( '#form2417' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl389,zip_derived_cl397]) ).

thf(zip_derived_cl407,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( '#form2686' @ X2 )
      | ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl422,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( '#form2686' @ X2 )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl414,zip_derived_cl407]) ).

thf(zip_derived_cl429,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl422]) ).

thf(zip_derived_cl437,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( '#sk3410' @ X2 @ Y0 @ Y1 ) @ Y2 )
                        = ( '#sk3410' @ X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( ( X2 @ id @ Y0 @ id )
                 => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
           => ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id ) ) )
      | ~ ( '#form2686' @ X2 )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl429]) ).

thf(zip_derived_cl444,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( !!
            @ ^ [Y0: term] :
                ( ( X2 @ id @ Y0 @ id )
               => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
         => ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id ) )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl437]) ).

thf(zip_derived_cl364,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( X2 @ id @ Y1 @ id )
                       => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
                 => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
               => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl351]) ).

thf(zip_derived_cl376,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl364]) ).

thf(zip_derived_cl385,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 )
                     => ( X2 @ ( '#sk1549' @ X2 ) @ Y0 @ ( comp @ Y2 @ Y1 ) ) ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl376]) ).

thf(zip_derived_cl393,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y1 ) @ ( sub @ ( '#sk1760' @ X2 ) @ Y1 ) @ Y0 )
                 => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ Y1 @ Y0 ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl385]) ).

thf(zip_derived_cl403,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ Y0 ) @ ( sub @ ( '#sk1760' @ X2 ) @ Y0 ) @ ( '#sk1944' @ X2 ) )
             => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ Y0 @ ( '#sk1944' @ X2 ) ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl393]) ).

thf(zip_derived_cl415,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl403]) ).

thf(zip_derived_cl407_002,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( '#form2686' @ X2 )
      | ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl423,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( '#form2686' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y1 @ id )
                   => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
             => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl415,zip_derived_cl407]) ).

thf(zip_derived_cl430,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
               => ( X2 @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl423]) ).

thf(zip_derived_cl438,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( '#sk3410' @ X2 @ Y0 @ Y1 ) @ Y2 )
                        = ( '#sk3410' @ X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( ( X2 @ id @ Y0 @ id )
                 => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
           => ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id ) ) )
      | ~ ( '#form2686' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl430]) ).

thf(zip_derived_cl445,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( '#form3615' @ X2 )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl455,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( '#form3615' @ X2 )
      | ~ ( '#form2686' @ X2 )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( ( !!
            @ ^ [Y0: term] :
                ( ( X2 @ id @ Y0 @ id )
               => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
         => ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl444,zip_derived_cl445]) ).

thf(zip_derived_cl467,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl455]) ).

thf(zip_derived_cl438_003,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( '#sk3410' @ X2 @ Y0 @ Y1 ) @ Y2 )
                        = ( '#sk3410' @ X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( ( X2 @ id @ Y0 @ id )
                 => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
           => ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id ) ) )
      | ~ ( '#form2686' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl430]) ).

thf(zip_derived_cl445_004,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( '#form3615' @ X2 )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl447,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( '#form3615' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 )
      | ~ ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( '#sk3410' @ X2 @ Y0 @ Y1 ) @ Y2 )
                        = ( '#sk3410' @ X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( ( X2 @ id @ Y0 @ id )
                 => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
           => ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl438,zip_derived_cl445]) ).

thf(zip_derived_cl457,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( ( !!
            @ ^ [Y0: term] :
                ( ( X2 @ id @ Y0 @ id )
               => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
         => ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id ) )
      | ~ ( '#form2686' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl447]) ).

thf(zip_derived_cl470,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( X2 @ id @ ( lam @ ( '#sk3410' @ X2 @ sh @ one ) ) @ id )
      | ( '#form3615' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl457]) ).

thf(zip_derived_cl356,plain,
    ( !!
    @ ^ [Y0: subst > term > term] :
        ( ( !!
          @ ^ [Y1: subst] :
              ( !!
              @ ^ [Y2: term] :
                  ( !!
                  @ ^ [Y3: subst] :
                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y1 @ id )
               => ( '#sk733' @ id @ ( Y0 @ id @ Y1 ) @ id ) ) )
         => ( '#sk733' @ id @ ( lam @ ( Y0 @ sh @ one ) ) @ id ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl344]) ).

thf(zip_derived_cl368,plain,
    ! [X2: subst > term > term] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( X2 @ Y0 @ Y1 ) @ Y2 )
                    = ( X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( X2 @ id @ Y0 ) @ id ) ) )
       => ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl356]) ).

thf(zip_derived_cl379,plain,
    ! [X2: subst > term > term] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( sub @ ( X2 @ Y0 @ Y1 ) @ Y2 )
                      = ( X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( X2 @ id @ Y0 ) @ id ) ) )
       => ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl368]) ).

thf(zip_derived_cl387,plain,
    ! [X2: subst > term > term] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ Y0 ) @ Y1 )
                  = ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ Y1 ) @ ( sub @ Y0 @ Y1 ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( X2 @ id @ Y0 ) @ id ) ) )
       => ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl379]) ).

thf(zip_derived_cl394,plain,
    ! [X2: subst > term > term] :
      ( ~ ( !!
          @ ^ [Y0: subst] :
              ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ ( '#sk467' @ X2 ) ) @ Y0 )
              = ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ Y0 ) @ ( sub @ ( '#sk467' @ X2 ) @ Y0 ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( X2 @ id @ Y0 ) @ id ) ) )
       => ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl387]) ).

thf(zip_derived_cl404,plain,
    ! [X2: subst > term > term] :
      ( ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ ( '#sk467' @ X2 ) ) @ ( '#sk516' @ X2 ) )
       != ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ ( '#sk516' @ X2 ) ) @ ( sub @ ( '#sk467' @ X2 ) @ ( '#sk516' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( X2 @ id @ Y0 ) @ id ) ) )
       => ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl394]) ).

thf(zip_derived_cl416,plain,
    ! [X2: subst > term > term] :
      ( ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ ( '#sk467' @ X2 ) ) @ ( '#sk516' @ X2 ) )
       != ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ ( '#sk516' @ X2 ) ) @ ( sub @ ( '#sk467' @ X2 ) @ ( '#sk516' @ X2 ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( X2 @ id @ Y0 ) @ id ) ) )
       => ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id ) ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl404]) ).

thf(zip_derived_cl417,plain,
    ! [X2: subst > term > term] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( X2 @ id @ Y0 ) @ id ) ) )
      | ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id )
      | ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ ( '#sk467' @ X2 ) ) @ ( '#sk516' @ X2 ) )
       != ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ ( '#sk516' @ X2 ) ) @ ( sub @ ( '#sk467' @ X2 ) @ ( '#sk516' @ X2 ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl416]) ).

thf(zip_derived_cl424,plain,
    ! [X2: subst > term > term] :
      ( ~ ( ( '#sk733' @ id @ ( '#sk3185' @ X2 ) @ id )
         => ( '#sk733' @ id @ ( X2 @ id @ ( '#sk3185' @ X2 ) ) @ id ) )
      | ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ ( '#sk467' @ X2 ) ) @ ( '#sk516' @ X2 ) )
       != ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ ( '#sk516' @ X2 ) ) @ ( sub @ ( '#sk467' @ X2 ) @ ( '#sk516' @ X2 ) ) ) )
      | ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl417]) ).

thf(zip_derived_cl431,plain,
    ! [X2: subst > term > term] :
      ( ( '#sk733' @ id @ ( '#sk3185' @ X2 ) @ id )
      | ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id )
      | ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ ( '#sk467' @ X2 ) ) @ ( '#sk516' @ X2 ) )
       != ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ ( '#sk516' @ X2 ) ) @ ( sub @ ( '#sk467' @ X2 ) @ ( '#sk516' @ X2 ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl424]) ).

thf(zip_derived_cl134,plain,
    ( !!
    @ ^ [Y0: term > $o] :
        ( ( !!
          @ ^ [Y1: term] :
              ( ( var @ Y1 )
             => ( Y0 @ Y1 ) ) )
       => ( ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( ( Y0 @ Y1 )
                   => ( ( Y0 @ Y2 )
                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y1: term] :
                  ( ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y2 )
                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                 => ( Y0 @ ( lam @ Y1 ) ) ) )
           => ( !!
              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl130]) ).

thf(zip_derived_cl140,plain,
    ! [X2: term > $o] :
      ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( X2 @ Y0 ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ Y1 )
                     => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
               => ( X2 @ ( lam @ Y0 ) ) ) )
         => ( !!
            @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl134]) ).

thf(zip_derived_cl149,plain,
    ! [X2: term > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ Y0 ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ Y1 )
                     => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
               => ( X2 @ ( lam @ Y0 ) ) ) )
         => ( !!
            @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl140]) ).

thf(zip_derived_cl160,plain,
    ! [X2: term > $o] :
      ( ~ ( ( var @ ( '#sk46' @ X2 ) )
         => ( X2 @ ( '#sk46' @ X2 ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ Y1 )
                     => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
               => ( X2 @ ( lam @ Y0 ) ) ) )
         => ( !!
            @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl149]) ).

thf(zip_derived_cl177,plain,
    ! [X2: term > $o] :
      ( ( var @ ( '#sk46' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ Y1 )
                     => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
               => ( X2 @ ( lam @ Y0 ) ) ) )
         => ( !!
            @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl160]) ).

thf(zip_derived_cl195,plain,
    ! [X2: term > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] : ( X2 @ Y0 ) ) )
      | ( var @ ( '#sk46' @ X2 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl177]) ).

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

thf(zip_derived_cl133,plain,
    ! [X2: term > $o] :
      ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( X2 @ Y0 )
               => ( ( X2 @ Y1 )
                 => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( !!
                    @ ^ [Y2: term] :
                        ( ( var @ Y2 )
                       => ( X2 @ ( sub @ Y2 @ Y1 ) ) ) )
                 => ( X2 @ ( sub @ Y0 @ Y1 ) ) ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl129]) ).

thf(zip_derived_cl139,plain,
    ! [X2: term > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( !!
                    @ ^ [Y2: term] :
                        ( ( var @ Y2 )
                       => ( X2 @ ( sub @ Y2 @ Y1 ) ) ) )
                 => ( X2 @ ( sub @ Y0 @ Y1 ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl133]) ).

thf(zip_derived_cl146,plain,
    ! [X2: term > $o] :
      ( ( '#form108' @ X2 )
      | ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl212,plain,
    ! [X2: term > $o] :
      ( ~ ( '#form108'
          @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ( var @ ( '#sk46' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl195,zip_derived_cl146]) ).

thf(zip_derived_cl229,plain,
    ! [X2: term > $o] :
      ( ~ ( '#form108' @ X2 )
      | ( var @ ( '#sk46' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ),
    inference(ho_norm,[status(thm)],[zip_derived_cl212]) ).

thf(zip_derived_cl230,plain,
    ! [X2: term > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ( var @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl229]) ).

thf(zip_derived_cl244,plain,
    ! [X2: term > $o] :
      ( ~ ( ( !!
            @ ^ [Y0: term] :
                ( ( X2 @ Y0 )
               => ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ Y0 @ id ) ) ) ) )
         => ( X2 @ ( lam @ ( '#sk196' @ X2 ) ) ) )
      | ~ ( '#form108' @ X2 )
      | ( var @ ( '#sk46' @ X2 ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl230]) ).

thf(zip_derived_cl256,plain,
    ! [X2: term > $o] :
      ( ~ ( X2 @ ( lam @ ( '#sk196' @ X2 ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ( var @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl244]) ).

thf(zip_derived_cl271,plain,
    ! [X2: term > $o,X4: term] :
      ( ( X2 @ X4 )
      | ~ ( '#form108' @ X2 )
      | ( var @ ( '#sk46' @ X2 ) )
      | ~ ( X2 @ ( lam @ ( '#sk196' @ X2 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl256]) ).

thf(zip_derived_cl466,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( !!
        @ ^ [Y0: term] :
            ( ( X2 @ id @ Y0 @ id )
           => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl455]) ).

thf(zip_derived_cl479,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ( ( X2 @ id @ X4 @ id )
       => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ X4 ) @ id ) )
      | ( '#form3615' @ X2 )
      | ~ ( '#form2686' @ X2 )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl466]) ).

thf(zip_derived_cl491,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ~ ( X2 @ id @ X4 @ id )
      | ( X2 @ id @ ( '#sk3410' @ X2 @ id @ X4 ) @ id )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl479]) ).

thf(zip_derived_cl432,plain,
    ! [X2: subst > term > term] :
      ( ~ ( '#sk733' @ id @ ( X2 @ id @ ( '#sk3185' @ X2 ) ) @ id )
      | ( '#sk733' @ id @ ( lam @ ( X2 @ sh @ one ) ) @ id )
      | ( ( sub @ ( X2 @ ( '#sk430' @ X2 ) @ ( '#sk467' @ X2 ) ) @ ( '#sk516' @ X2 ) )
       != ( X2 @ ( comp @ ( '#sk430' @ X2 ) @ ( '#sk516' @ X2 ) ) @ ( sub @ ( '#sk467' @ X2 ) @ ( '#sk516' @ X2 ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl424]) ).

thf(zip_derived_cl445_005,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( '#form3615' @ X2 )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl446,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ( ( !!
          @ ^ [Y0: term] :
              ( ( X2 @ id @ Y0 @ id )
             => ( X2 @ id @ ( sub @ X4 @ ( push @ Y0 @ id ) ) @ id ) ) )
       => ( X2 @ id @ ( lam @ X4 ) @ id ) )
      | ~ ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl445]) ).

thf(zip_derived_cl458,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( ( X2 @ id @ Y0 @ id )
             => ( X2 @ id @ ( sub @ X4 @ ( push @ Y0 @ id ) ) @ id ) ) )
      | ( X2 @ id @ ( lam @ X4 ) @ id )
      | ~ ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl446]) ).

thf(zip_derived_cl471,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ~ ( ( X2 @ id @ ( '#sk4068' @ X2 @ X4 ) @ id )
         => ( X2 @ id @ ( sub @ X4 @ ( push @ ( '#sk4068' @ X2 @ X4 ) @ id ) ) @ id ) )
      | ~ ( '#form3615' @ X2 )
      | ( X2 @ id @ ( lam @ X4 ) @ id ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl458]) ).

thf(zip_derived_cl482,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ( X2 @ id @ ( '#sk4068' @ X2 @ X4 ) @ id )
      | ( X2 @ id @ ( lam @ X4 ) @ id )
      | ~ ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl471]) ).

thf(zip_derived_cl178,plain,
    ! [X2: term > $o] :
      ( ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( X2 @ Y1 )
                     => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
               => ( X2 @ ( lam @ Y0 ) ) ) )
         => ( !!
            @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl160]) ).

thf(zip_derived_cl196,plain,
    ! [X2: term > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] : ( X2 @ Y0 ) ) )
      | ~ ( X2 @ ( '#sk46' @ X2 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl178]) ).

thf(zip_derived_cl146_006,plain,
    ! [X2: term > $o] :
      ( ( '#form108' @ X2 )
      | ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl213,plain,
    ! [X2: term > $o] :
      ( ~ ( '#form108'
          @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl196,zip_derived_cl146]) ).

thf(zip_derived_cl231,plain,
    ! [X2: term > $o] :
      ( ~ ( '#form108' @ X2 )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ( ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
       => ( !!
          @ ^ [Y0: term] : ( X2 @ Y0 ) ) ) ),
    inference(ho_norm,[status(thm)],[zip_derived_cl213]) ).

thf(zip_derived_cl232,plain,
    ! [X2: term > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ Y1 )
                   => ( X2 @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) ) ) )
             => ( X2 @ ( lam @ Y0 ) ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl231]) ).

thf(zip_derived_cl245,plain,
    ! [X2: term > $o] :
      ( ~ ( ( !!
            @ ^ [Y0: term] :
                ( ( X2 @ Y0 )
               => ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ Y0 @ id ) ) ) ) )
         => ( X2 @ ( lam @ ( '#sk196' @ X2 ) ) ) )
      | ~ ( '#form108' @ X2 )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl232]) ).

thf(zip_derived_cl258,plain,
    ! [X2: term > $o] :
      ( ~ ( X2 @ ( lam @ ( '#sk196' @ X2 ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl245]) ).

thf(zip_derived_cl273,plain,
    ! [X2: term > $o,X4: term] :
      ( ( X2 @ X4 )
      | ~ ( '#form108' @ X2 )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ~ ( X2 @ ( lam @ ( '#sk196' @ X2 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl258]) ).

thf(zip_derived_cl469,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( !!
        @ ^ [Y0: term] :
            ( ( X2 @ id @ Y0 @ id )
           => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ Y0 ) @ id ) ) )
      | ( '#form3615' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl457]) ).

thf(zip_derived_cl481,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ( ( X2 @ id @ X4 @ id )
       => ( X2 @ id @ ( '#sk3410' @ X2 @ id @ X4 ) @ id ) )
      | ~ ( '#form2686' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl469]) ).

thf(zip_derived_cl493,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ~ ( X2 @ id @ X4 @ id )
      | ( X2 @ id @ ( '#sk3410' @ X2 @ id @ X4 ) @ id )
      | ( '#form3615' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl481]) ).

thf(zip_derived_cl443,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( '#sk3410' @ X2 @ Y0 @ Y1 ) @ Y2 )
                    = ( '#sk3410' @ X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl437]) ).

thf(zip_derived_cl445_007,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( '#form3615' @ X2 )
      | ( !!
        @ ^ [Y0: term] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ id @ Y1 @ id )
                 => ( X2 @ id @ ( sub @ Y0 @ ( push @ Y1 @ id ) ) @ id ) ) )
           => ( X2 @ id @ ( lam @ Y0 ) @ id ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl454,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( '#form3615' @ X2 )
      | ~ ( '#form2686' @ X2 )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( '#sk3410' @ X2 @ Y0 @ Y1 ) @ Y2 )
                    = ( '#sk3410' @ X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl443,zip_derived_cl445]) ).

thf(zip_derived_cl465,plain,
    ! [X2: subst > term > subst > $o,X4: subst] :
      ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ ( '#sk3410' @ X2 @ X4 @ Y0 ) @ Y1 )
                = ( '#sk3410' @ X2 @ ( comp @ X4 @ Y1 ) @ ( sub @ Y0 @ Y1 ) ) ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl454]) ).

thf(zip_derived_cl478,plain,
    ! [X2: subst > term > subst > $o,X4: subst,X6: term] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( ( sub @ ( '#sk3410' @ X2 @ X4 @ X6 ) @ Y0 )
            = ( '#sk3410' @ X2 @ ( comp @ X4 @ Y0 ) @ ( sub @ X6 @ Y0 ) ) ) )
      | ( '#form3615' @ X2 )
      | ~ ( '#form2686' @ X2 )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl465]) ).

thf(zip_derived_cl490,plain,
    ! [X2: subst > term > subst > $o,X4: subst,X6: term,X8: subst] :
      ( ( ( sub @ ( '#sk3410' @ X2 @ X4 @ X6 ) @ X8 )
        = ( '#sk3410' @ X2 @ ( comp @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl478]) ).

thf(zip_derived_cl498,plain,
    ! [X2: subst > term > subst > $o,X4: subst,X6: term,X8: subst] :
      ( ( ( sub @ ( '#sk3410' @ X2 @ X4 @ X6 ) @ X8 )
        = ( '#sk3410' @ X2 @ ( comp @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
      | ( X2 @ ( '#sk708' @ X2 ) @ ( '#sk839' @ X2 ) @ ( comp @ ( '#sk1077' @ X2 ) @ ( '#sk967' @ X2 ) ) )
      | ~ ( '#form2686' @ X2 )
      | ( '#form3615' @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl490]) ).

thf(zip_derived_cl255,plain,
    ! [X2: term > $o] :
      ( ( !!
        @ ^ [Y0: term] :
            ( ( X2 @ Y0 )
           => ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ Y0 @ id ) ) ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ( var @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl244]) ).

thf(zip_derived_cl270,plain,
    ! [X2: term > $o,X4: term] :
      ( ( ( X2 @ X4 )
       => ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ X4 @ id ) ) ) )
      | ~ ( '#form108' @ X2 )
      | ( var @ ( '#sk46' @ X2 ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl255]) ).

thf(zip_derived_cl283,plain,
    ! [X2: term > $o,X4: term] :
      ( ~ ( X2 @ X4 )
      | ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ X4 @ id ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ( var @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl270]) ).

thf(zip_derived_cl295,plain,
    ! [X2: term > $o,X4: term,X6: term] :
      ( ( X2 @ X6 )
      | ~ ( '#form108' @ X2 )
      | ( var @ ( '#sk46' @ X2 ) )
      | ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ X4 @ id ) ) )
      | ~ ( X2 @ X4 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl283]) ).

thf(zip_derived_cl308,plain,
    ! [X0: term > $o,X1: term] :
      ( ~ ( X0 @ X1 )
      | ~ ( '#form108' @ X0 )
      | ( var @ ( '#sk46' @ X0 ) )
      | ( X0 @ ( sub @ ( '#sk196' @ X0 ) @ ( push @ X1 @ id ) ) ) ),
    inference(condensation,[status(thm)],[zip_derived_cl295]) ).

thf(zip_derived_cl483,plain,
    ! [X2: subst > term > subst > $o,X4: term] :
      ( ~ ( X2 @ id @ ( sub @ X4 @ ( push @ ( '#sk4068' @ X2 @ X4 ) @ id ) ) @ id )
      | ( X2 @ id @ ( lam @ X4 ) @ id )
      | ~ ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl471]) ).

thf(zip_derived_cl407_008,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( '#form2686' @ X2 )
      | ~ ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
         => ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl408,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( X2 @ ( comp @ ( '#sk1549' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( sub @ ( '#sk1760' @ X2 ) @ ( '#sk2144' @ X2 ) ) @ ( '#sk1944' @ X2 ) )
      | ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl407]) ).

thf(zip_derived_cl316,plain,
    ( !!
    @ ^ [Y0: subst] :
        ( !!
        @ ^ [Y1: term] :
            ( !!
            @ ^ [Y2: subst] :
                ( !!
                @ ^ [Y3: subst] :
                    ( ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                   => ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl307]) ).

thf(zip_derived_cl323,plain,
    ! [X2: subst] :
      ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: subst] :
              ( !!
              @ ^ [Y2: subst] :
                  ( ( '#sk733' @ X2 @ Y0 @ ( comp @ Y2 @ Y1 ) )
                 => ( '#sk733' @ ( comp @ X2 @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl316]) ).

thf(zip_derived_cl330,plain,
    ! [X2: subst,X4: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( !!
          @ ^ [Y1: subst] :
              ( ( '#sk733' @ X2 @ X4 @ ( comp @ Y1 @ Y0 ) )
             => ( '#sk733' @ ( comp @ X2 @ Y1 ) @ ( sub @ X4 @ Y1 ) @ Y0 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl323]) ).

thf(zip_derived_cl340,plain,
    ! [X2: subst,X4: term,X6: subst] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( '#sk733' @ X2 @ X4 @ ( comp @ Y0 @ X6 ) )
         => ( '#sk733' @ ( comp @ X2 @ Y0 ) @ ( sub @ X4 @ Y0 ) @ X6 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl330]) ).

thf(zip_derived_cl352,plain,
    ! [X2: subst,X4: term,X6: subst,X8: subst] :
      ( ( '#sk733' @ X2 @ X4 @ ( comp @ X8 @ X6 ) )
     => ( '#sk733' @ ( comp @ X2 @ X8 ) @ ( sub @ X4 @ X8 ) @ X6 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl340]) ).

thf(zip_derived_cl365,plain,
    ! [X2: subst,X4: term,X6: subst,X8: subst] :
      ( ~ ( '#sk733' @ X2 @ X4 @ ( comp @ X8 @ X6 ) )
      | ( '#sk733' @ ( comp @ X2 @ X8 ) @ ( sub @ X4 @ X8 ) @ X6 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl352]) ).

thf(zip_derived_cl456,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( '#sk3410' @ X2 @ Y0 @ Y1 ) @ Y2 )
                    = ( '#sk3410' @ X2 @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
      | ~ ( '#form2686' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl447]) ).

thf(zip_derived_cl468,plain,
    ! [X2: subst > term > subst > $o,X4: subst] :
      ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ ( '#sk3410' @ X2 @ X4 @ Y0 ) @ Y1 )
                = ( '#sk3410' @ X2 @ ( comp @ X4 @ Y1 ) @ ( sub @ Y0 @ Y1 ) ) ) ) )
      | ( '#form3615' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl456]) ).

thf(zip_derived_cl480,plain,
    ! [X2: subst > term > subst > $o,X4: subst,X6: term] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( ( sub @ ( '#sk3410' @ X2 @ X4 @ X6 ) @ Y0 )
            = ( '#sk3410' @ X2 @ ( comp @ X4 @ Y0 ) @ ( sub @ X6 @ Y0 ) ) ) )
      | ~ ( '#form2686' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ( '#form3615' @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl468]) ).

thf(zip_derived_cl492,plain,
    ! [X2: subst > term > subst > $o,X4: subst,X6: term,X8: subst] :
      ( ( ( sub @ ( '#sk3410' @ X2 @ X4 @ X6 ) @ X8 )
        = ( '#sk3410' @ X2 @ ( comp @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
      | ( '#form3615' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl480]) ).

thf(zip_derived_cl499,plain,
    ! [X2: subst > term > subst > $o,X4: subst,X6: term,X8: subst] :
      ( ( ( sub @ ( '#sk3410' @ X2 @ X4 @ X6 ) @ X8 )
        = ( '#sk3410' @ X2 @ ( comp @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
      | ( '#form3615' @ X2 )
      | ~ ( X2 @ ( comp @ ( '#sk708' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( sub @ ( '#sk839' @ X2 ) @ ( '#sk1077' @ X2 ) ) @ ( '#sk967' @ X2 ) )
      | ~ ( '#form2686' @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl492]) ).

thf(zip_derived_cl257,plain,
    ! [X2: term > $o] :
      ( ( !!
        @ ^ [Y0: term] :
            ( ( X2 @ Y0 )
           => ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ Y0 @ id ) ) ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl245]) ).

thf(zip_derived_cl272,plain,
    ! [X2: term > $o,X4: term] :
      ( ( ( X2 @ X4 )
       => ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ X4 @ id ) ) ) )
      | ~ ( '#form108' @ X2 )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl257]) ).

thf(zip_derived_cl284,plain,
    ! [X2: term > $o,X4: term] :
      ( ~ ( X2 @ X4 )
      | ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ X4 @ id ) ) )
      | ( !!
        @ ^ [Y0: term] : ( X2 @ Y0 ) )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ~ ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl272]) ).

thf(zip_derived_cl296,plain,
    ! [X2: term > $o,X4: term,X6: term] :
      ( ( X2 @ X6 )
      | ~ ( '#form108' @ X2 )
      | ~ ( X2 @ ( '#sk46' @ X2 ) )
      | ( X2 @ ( sub @ ( '#sk196' @ X2 ) @ ( push @ X4 @ id ) ) )
      | ~ ( X2 @ X4 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl284]) ).

thf(zip_derived_cl309,plain,
    ! [X0: term > $o,X1: term] :
      ( ~ ( X0 @ X1 )
      | ~ ( '#form108' @ X0 )
      | ~ ( X0 @ ( '#sk46' @ X0 ) )
      | ( X0 @ ( sub @ ( '#sk196' @ X0 ) @ ( push @ X1 @ id ) ) ) ),
    inference(condensation,[status(thm)],[zip_derived_cl296]) ).

thf(zip_derived_cl409,plain,
    ! [X2: subst > term > subst > $o] :
      ( ~ ( X2 @ ( '#sk1549' @ X2 ) @ ( '#sk1760' @ X2 ) @ ( comp @ ( '#sk2144' @ X2 ) @ ( '#sk1944' @ X2 ) ) )
      | ( '#form2686' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl407]) ).

thf(zip_derived_cl324,plain,
    ( !!
    @ ^ [Y0: subst] :
        ( !!
        @ ^ [Y1: term] :
            ( !!
            @ ^ [Y2: subst] :
                ( !!
                @ ^ [Y3: subst] :
                    ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                   => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl317]) ).

thf(zip_derived_cl331,plain,
    ! [X2: subst] :
      ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: subst] :
              ( !!
              @ ^ [Y2: subst] :
                  ( ( '#sk733' @ ( comp @ X2 @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 )
                 => ( '#sk733' @ X2 @ Y0 @ ( comp @ Y2 @ Y1 ) ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl324]) ).

thf(zip_derived_cl341,plain,
    ! [X2: subst,X4: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( !!
          @ ^ [Y1: subst] :
              ( ( '#sk733' @ ( comp @ X2 @ Y1 ) @ ( sub @ X4 @ Y1 ) @ Y0 )
             => ( '#sk733' @ X2 @ X4 @ ( comp @ Y1 @ Y0 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl331]) ).

thf(zip_derived_cl353,plain,
    ! [X2: subst,X4: term,X6: subst] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( '#sk733' @ ( comp @ X2 @ Y0 ) @ ( sub @ X4 @ Y0 ) @ X6 )
         => ( '#sk733' @ X2 @ X4 @ ( comp @ Y0 @ X6 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl341]) ).

thf(zip_derived_cl366,plain,
    ! [X2: subst,X4: term,X6: subst,X8: subst] :
      ( ( '#sk733' @ ( comp @ X2 @ X8 ) @ ( sub @ X4 @ X8 ) @ X6 )
     => ( '#sk733' @ X2 @ X4 @ ( comp @ X8 @ X6 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl353]) ).

thf(zip_derived_cl377,plain,
    ! [X2: subst,X4: term,X6: subst,X8: subst] :
      ( ~ ( '#sk733' @ ( comp @ X2 @ X8 ) @ ( sub @ X4 @ X8 ) @ X6 )
      | ( '#sk733' @ X2 @ X4 @ ( comp @ X8 @ X6 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl366]) ).

thf(zip_derived_cl146_009,plain,
    ! [X2: term > $o] :
      ( ( '#form108' @ X2 )
      | ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl147,plain,
    ! [X2: term > $o] :
      ( ~ ( !!
          @ ^ [Y0: term] :
              ( ( X2 @ ( '#sk109' @ X2 ) )
             => ( ( X2 @ Y0 )
               => ( X2 @ ( ap @ ( '#sk109' @ X2 ) @ Y0 ) ) ) ) )
      | ( '#form108' @ X2 ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl146]) ).

thf(zip_derived_cl159,plain,
    ! [X2: term > $o] :
      ( ~ ( ( X2 @ ( '#sk109' @ X2 ) )
         => ( ( X2 @ ( '#sk153' @ X2 ) )
           => ( X2 @ ( ap @ ( '#sk109' @ X2 ) @ ( '#sk153' @ X2 ) ) ) ) )
      | ( '#form108' @ X2 ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl147]) ).

thf(zip_derived_cl175,plain,
    ! [X2: term > $o] :
      ( ( X2 @ ( '#sk109' @ X2 ) )
      | ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl159]) ).

thf(zip_derived_cl176,plain,
    ! [X2: term > $o] :
      ( ~ ( ( X2 @ ( '#sk153' @ X2 ) )
         => ( X2 @ ( ap @ ( '#sk109' @ X2 ) @ ( '#sk153' @ X2 ) ) ) )
      | ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl159]) ).

thf(zip_derived_cl193,plain,
    ! [X2: term > $o] :
      ( ( X2 @ ( '#sk153' @ X2 ) )
      | ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl176]) ).

thf(zip_derived_cl343,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: term] :
            ( ( '#sk733' @ id @ Y0 @ id )
           => ( ( '#sk733' @ id @ Y1 @ id )
             => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl333]) ).

thf(zip_derived_cl355,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: term] :
          ( ( '#sk733' @ id @ X2 @ id )
         => ( ( '#sk733' @ id @ Y0 @ id )
           => ( '#sk733' @ id @ ( ap @ ( sub @ X2 @ id ) @ Y0 ) @ id ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl343]) ).

thf(zip_derived_cl367,plain,
    ! [X2: term,X4: term] :
      ( ( '#sk733' @ id @ X2 @ id )
     => ( ( '#sk733' @ id @ X4 @ id )
       => ( '#sk733' @ id @ ( ap @ ( sub @ X2 @ id ) @ X4 ) @ id ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl355]) ).

thf(zip_derived_cl378,plain,
    ! [X2: term,X4: term] :
      ( ~ ( '#sk733' @ id @ X2 @ id )
      | ( ( '#sk733' @ id @ X4 @ id )
       => ( '#sk733' @ id @ ( ap @ ( sub @ X2 @ id ) @ X4 ) @ id ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl367]) ).

thf(zip_derived_cl386,plain,
    ! [X2: term,X4: term] :
      ( ~ ( '#sk733' @ id @ X4 @ id )
      | ( '#sk733' @ id @ ( ap @ ( sub @ X2 @ id ) @ X4 ) @ id )
      | ~ ( '#sk733' @ id @ X2 @ id ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl378]) ).

thf(zip_derived_cl17_010,plain,
    ! [X2: term] :
      ( ( sub @ X2 @ id )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl12]) ).

thf(zip_derived_cl510,plain,
    ! [X2: term,X4: term] :
      ( ~ ( '#sk733' @ id @ X4 @ id )
      | ( '#sk733' @ id @ ( ap @ X2 @ X4 ) @ id )
      | ~ ( '#sk733' @ id @ X2 @ id ) ),
    inference(demod,[status(thm)],[zip_derived_cl386,zip_derived_cl17]) ).

thf(zip_derived_cl280,plain,
    ( !!
    @ ^ [Y0: subst > term > subst > $o] :
        ( ( !!
          @ ^ [Y1: subst] :
              ( !!
              @ ^ [Y2: term] :
                  ( !!
                  @ ^ [Y3: subst] :
                      ( !!
                      @ ^ [Y4: subst] :
                          ( ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) )
                         => ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( !!
                        @ ^ [Y4: subst] :
                            ( ( Y0 @ ( comp @ Y1 @ Y4 ) @ ( sub @ Y2 @ Y4 ) @ Y3 )
                           => ( Y0 @ Y1 @ Y2 @ ( comp @ Y4 @ Y3 ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( Y0 @ id @ Y1 @ id )
                     => ( ( Y0 @ id @ Y2 @ id )
                       => ( Y0 @ id @ ( ap @ ( sub @ Y1 @ id ) @ Y2 ) @ id ) ) ) ) )
           => ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( Y0 @ id @ Y1 @ id )
                     => ( ( Y0 @ id @ Y2 @ id )
                       => ( Y0 @ id @ ( ap @ Y1 @ Y2 ) @ id ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl266]) ).

thf(zip_derived_cl290,plain,
    ! [X2: subst > term > subst > $o] :
      ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                       => ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( X2 @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                         => ( X2 @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y0 @ id )
                   => ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( X2 @ id @ Y0 @ id )
                   => ( ( X2 @ id @ Y1 @ id )
                     => ( X2 @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl280]) ).

thf(zip_derived_cl305,plain,
    ( ( !!
      @ ^ [Y0: subst] :
          ( !!
          @ ^ [Y1: term] :
              ( !!
              @ ^ [Y2: subst] :
                  ( !!
                  @ ^ [Y3: subst] :
                      ( ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                     => ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) )
   => ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(triggered_bool_instantiation,[status(thm)],[zip_derived_cl290]) ).

thf(zip_derived_cl577,plain,
    ( ~ ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) )
                       => ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 ) ) ) ) ) )
    | ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl305]) ).

thf(zip_derived_cl578,plain,
    ( ~ ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ Y0 @ ( comp @ Y2 @ Y1 ) )
                   => ( '#sk733' @ ( comp @ ( '#sk708' @ '#sk733' ) @ Y2 ) @ ( sub @ Y0 @ Y2 ) @ Y1 ) ) ) ) )
    | ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl577]) ).

thf(zip_derived_cl579,plain,
    ( ~ ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ Y1 @ Y0 ) )
               => ( '#sk733' @ ( comp @ ( '#sk708' @ '#sk733' ) @ Y1 ) @ ( sub @ ( '#sk839' @ '#sk733' ) @ Y1 ) @ Y0 ) ) ) )
    | ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl578]) ).

thf(zip_derived_cl580,plain,
    ( ~ ( !!
        @ ^ [Y0: subst] :
            ( ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ Y0 @ ( '#sk967' @ '#sk733' ) ) )
           => ( '#sk733' @ ( comp @ ( '#sk708' @ '#sk733' ) @ Y0 ) @ ( sub @ ( '#sk839' @ '#sk733' ) @ Y0 ) @ ( '#sk967' @ '#sk733' ) ) ) )
    | ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl579]) ).

thf(zip_derived_cl581,plain,
    ( ~ ( ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
       => ( '#sk733' @ ( comp @ ( '#sk708' @ '#sk733' ) @ ( '#sk1077' @ '#sk733' ) ) @ ( sub @ ( '#sk839' @ '#sk733' ) @ ( '#sk1077' @ '#sk733' ) ) @ ( '#sk967' @ '#sk733' ) ) )
    | ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl580]) ).

thf(zip_derived_cl582,plain,
    ( ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
    | ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk733' @ id @ Y0 @ id )
                 => ( ( '#sk733' @ id @ Y1 @ id )
                   => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl581]) ).

thf(zip_derived_cl584,plain,
    ( ~ ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
    | ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
     => ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) )
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl582]) ).

thf(zip_derived_cl584_011,plain,
    ( ~ ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) )
    | ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
     => ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) )
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl582]) ).

thf(zip_derived_cl586,plain,
    ( '#form5466'
    | ~ ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( '#sk733' @ ( comp @ Y0 @ Y3 ) @ ( sub @ Y1 @ Y3 ) @ Y2 )
                       => ( '#sk733' @ Y0 @ Y1 @ ( comp @ Y3 @ Y2 ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl588,plain,
    ( ~ '#form5466'
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
    | ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
     => ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl584,zip_derived_cl586]) ).

thf(zip_derived_cl590,plain,
    ( ~ ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
    | ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( ( '#sk733' @ id @ Y1 @ id )
               => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) )
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
    | ~ '#form5466' ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl588]) ).

thf(zip_derived_cl590_012,plain,
    ( ~ ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) )
    | ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: term] :
              ( ( '#sk733' @ id @ Y0 @ id )
             => ( ( '#sk733' @ id @ Y1 @ id )
               => ( '#sk733' @ id @ ( ap @ Y0 @ Y1 ) @ id ) ) ) ) )
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
    | ~ '#form5466' ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl588]) ).

thf(zip_derived_cl593,plain,
    ! [X2: term > $o] :
      ( ~ ( '#form108' @ X2 )
      | ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( X2 @ Y0 )
               => ( ( X2 @ Y1 )
                 => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl146_013,plain,
    ! [X2: term > $o] :
      ( ( '#form108' @ X2 )
      | ~ ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( X2 @ Y0 )
                 => ( ( X2 @ Y1 )
                   => ( X2 @ ( ap @ Y0 @ Y1 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl595,plain,
    ( ( '#form108'
      @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) )
    | ~ '#form5466'
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
    | ~ ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk733' @ id @ Y0 @ id )
               => ( ( '#sk733' @ id @ Y1 @ id )
                 => ( '#sk733' @ id @ ( ap @ ( sub @ Y0 @ id ) @ Y1 ) @ id ) ) ) ) ) ),
    inference(renaming,[status(thm)],[zip_derived_cl590,zip_derived_cl593,zip_derived_cl146]) ).

thf(zip_derived_cl598,plain,
    ( ~ ( !!
        @ ^ [Y0: term] :
            ( ( '#sk733' @ id @ ( '#sk3223' @ '#sk733' ) @ id )
           => ( ( '#sk733' @ id @ Y0 @ id )
             => ( '#sk733' @ id @ ( ap @ ( sub @ ( '#sk3223' @ '#sk733' ) @ id ) @ Y0 ) @ id ) ) ) )
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
    | ~ '#form5466'
    | ( '#form108'
      @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl595]) ).

thf(zip_derived_cl602,plain,
    ( ~ ( ( '#sk733' @ id @ ( '#sk3223' @ '#sk733' ) @ id )
       => ( ( '#sk733' @ id @ ( '#sk3356' @ '#sk733' ) @ id )
         => ( '#sk733' @ id @ ( ap @ ( sub @ ( '#sk3223' @ '#sk733' ) @ id ) @ ( '#sk3356' @ '#sk733' ) ) @ id ) ) )
    | ( '#form108'
      @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) )
    | ~ '#form5466'
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl598]) ).

thf(zip_derived_cl17_014,plain,
    ! [X2: term] :
      ( ( sub @ X2 @ id )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl12]) ).

thf(zip_derived_cl607,plain,
    ( ~ ( ( '#sk733' @ id @ ( '#sk3223' @ '#sk733' ) @ id )
       => ( ( '#sk733' @ id @ ( '#sk3356' @ '#sk733' ) @ id )
         => ( '#sk733' @ id @ ( ap @ ( '#sk3223' @ '#sk733' ) @ ( '#sk3356' @ '#sk733' ) ) @ id ) ) )
    | ( '#form108'
      @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) )
    | ~ '#form5466'
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) ) ),
    inference(demod,[status(thm)],[zip_derived_cl602,zip_derived_cl17]) ).

thf(zip_derived_cl608,plain,
    ( ( '#sk733' @ id @ ( '#sk3223' @ '#sk733' ) @ id )
    | ( '#sk733' @ ( '#sk708' @ '#sk733' ) @ ( '#sk839' @ '#sk733' ) @ ( comp @ ( '#sk1077' @ '#sk733' ) @ ( '#sk967' @ '#sk733' ) ) )
    | ~ '#form5466'
    | ( '#form108'
      @ ^ [Y0: term] : ( '#sk733' @ id @ Y0 @ id ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl607]) ).

thf(zip_derived_cl14198,plain,
    ! [X1: term] :
      ( ( '#l_lift30324' @ X1 )
      = ( '#sk733' @ id @ X1 @ id ) ),
    define([status(thm)]) ).

thf(zip_derived_cl194,plain,
    ! [X2: term > $o] :
      ( ~ ( X2 @ ( ap @ ( '#sk109' @ X2 ) @ ( '#sk153' @ X2 ) ) )
      | ( '#form108' @ X2 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl176]) ).

thf(zip_derived_cl14227,plain,
    $false,
    inference(eprover,[status(thm)],[zip_derived_cl369,zip_derived_cl501,zip_derived_cl467,zip_derived_cl470,zip_derived_cl431,zip_derived_cl271,zip_derived_cl491,zip_derived_cl432,zip_derived_cl482,zip_derived_cl273,zip_derived_cl493,zip_derived_cl498,zip_derived_cl308,zip_derived_cl483,zip_derived_cl408,zip_derived_cl365,zip_derived_cl499,zip_derived_cl309,zip_derived_cl409,zip_derived_cl377,zip_derived_cl175,zip_derived_cl193,zip_derived_cl510,zip_derived_cl14198,zip_derived_cl194]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.13  % Problem  : ALG269^1 : TPTP v8.1.2. Bugfixed v5.2.0.
% 0.00/0.14  % Command  : python3 /export/starexec/sandbox/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox/tmp/tmp.HR7YgmDJtZ true
% 0.13/0.35  % Computer : n019.cluster.edu
% 0.13/0.35  % Model    : x86_64 x86_64
% 0.13/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.35  % Memory   : 8042.1875MB
% 0.13/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.35  % CPULimit : 300
% 0.13/0.35  % WCLimit  : 300
% 0.13/0.35  % DateTime : Mon Aug 28 04:23:28 EDT 2023
% 0.13/0.35  % CPUTime  : 
% 0.13/0.35  % Running portfolio for 300 s
% 0.13/0.35  % File         : /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.13/0.35  % Number of cores: 8
% 0.13/0.36  % Python version: Python 3.6.8
% 0.13/0.36  % Running in HO mode
% 0.21/0.64  % Total configuration time : 828
% 0.21/0.64  % Estimated wc time : 1656
% 0.21/0.64  % Estimated cpu time (8 cpus) : 207.0
% 0.21/0.73  % /export/starexec/sandbox/solver/bin/lams/40_c.s.sh running for 80s
% 0.21/0.75  % /export/starexec/sandbox/solver/bin/lams/35_full_unif4.sh running for 80s
% 0.21/0.76  % /export/starexec/sandbox/solver/bin/lams/15_e_short1.sh running for 30s
% 0.21/0.76  % /export/starexec/sandbox/solver/bin/lams/40_c_ic.sh running for 80s
% 0.21/0.77  % /export/starexec/sandbox/solver/bin/lams/40_noforms.sh running for 90s
% 0.21/0.77  % /export/starexec/sandbox/solver/bin/lams/20_acsne_simpl.sh running for 40s
% 0.21/0.77  % /export/starexec/sandbox/solver/bin/lams/40_b.comb.sh running for 70s
% 0.21/0.79  % /export/starexec/sandbox/solver/bin/lams/30_sp5.sh running for 60s
% 0.21/0.83  % /export/starexec/sandbox/solver/bin/lams/30_b.l.sh running for 90s
% 55.36/7.78  % Solved by lams/20_acsne_simpl.sh.
% 55.36/7.78  % done 643 iterations in 6.416s
% 55.36/7.78  % SZS status Theorem for '/export/starexec/sandbox/benchmark/theBenchmark.p'
% 55.36/7.78  % SZS output start Refutation
% See solution above
% 55.36/7.85  
% 55.36/7.85  
% 55.36/7.85  % /export/starexec/sandbox/solver/bin/lams/35_full_unif.sh running for 56s
% 55.36/7.85  % Terminating...
% 58.40/8.31  % Runner terminated.
% 58.40/8.32  % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------