ITP001 Axioms: ITP091_5.ax


%------------------------------------------------------------------------------
% File     : ITP091_5 : TPTP v9.0.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : EncodeVar_2.ax [Gau20]
%          : HL4091_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   25 (   2 unt;   6 typ;   0 def)
%            Number of atoms       :  414 (   6 equ)
%            Maximal formula atoms :    8 (  16 avg)
%            Number of connectives :   47 (   0   ~;   0   |;   7   &)
%                                         (   8 <=>;  32  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   12 (   7 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of FOOLs       :  348 ( 348 fml;   0 var)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :   12 (   6   >;   6   *;   0   +;   0  <<)
%            Number of predicates  :   39 (  38 usr;  15 prp; 0-4 aty)
%            Number of functors    :    6 (   6 usr;   0 con; 1-3 aty)
%            Number of variables   :   60 (  58   !;   2   ?;  60   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(tp_c_2EEncodeVar_2Efixed__width,type,
    c_2EEncodeVar_2Efixed__width: del > $i ).

tff(mem_c_2EEncodeVar_2Efixed__width,axiom,
    ! [A_27a: del] : mem(c_2EEncodeVar_2Efixed__width(A_27a),arr(ty_2Enum_2Enum,arr(ty_2Epair_2Eprod(arr(A_27a,bool),ty_2Epair_2Eprod(arr(A_27a,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27a,ty_2Elist_2Elist(bool)))))),bool))) ).

tff(tp_c_2EEncodeVar_2Eof__length,type,
    c_2EEncodeVar_2Eof__length: del > $i ).

tff(mem_c_2EEncodeVar_2Eof__length,axiom,
    ! [A_27a: del] : mem(c_2EEncodeVar_2Eof__length(A_27a),arr(ty_2Enum_2Enum,arr(ty_2Elist_2Elist(A_27a),bool))) ).

tff(ax_thm_2EEncodeVar_2Efixed__width__def,axiom,
    ! [A_27a: del,V0n: tp__ty_2Enum_2Enum,V1c: $i] :
      ( mem(V1c,ty_2Epair_2Eprod(arr(A_27a,bool),ty_2Epair_2Eprod(arr(A_27a,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27a,ty_2Elist_2Elist(bool)))))))
     => ( p(ap(ap(c_2EEncodeVar_2Efixed__width(A_27a),inj__ty_2Enum_2Enum(V0n)),V1c))
      <=> ! [V2x: $i] :
            ( mem(V2x,A_27a)
           => ( p(ap(ap(c_2ECoder_2Edomain(A_27a),V1c),V2x))
             => ( surj__ty_2Enum_2Enum(ap(c_2Elist_2ELENGTH(bool),ap(ap(c_2ECoder_2Eencoder(A_27a),V1c),V2x))) = V0n ) ) ) ) ) ).

tff(ax_thm_2EEncodeVar_2Eof__length__def,axiom,
    ! [A_27a: del,V0l: $i] :
      ( mem(V0l,ty_2Elist_2Elist(A_27a))
     => ! [V1n: tp__ty_2Enum_2Enum] :
          ( p(ap(ap(c_2Ebool_2EIN(ty_2Elist_2Elist(A_27a)),V0l),ap(c_2EEncodeVar_2Eof__length(A_27a),inj__ty_2Enum_2Enum(V1n))))
        <=> ( surj__ty_2Enum_2Enum(ap(c_2Elist_2ELENGTH(A_27a),V0l)) = V1n ) ) ) ).

tff(lamtp_f2440,type,
    f2440: ( del * $i * $i ) > $i ).

tff(lameq_f2440,axiom,
    ! [A_27a: del,V1c: $i] :
      ( mem(V1c,ty_2Epair_2Eprod(arr(A_27a,bool),ty_2Epair_2Eprod(arr(A_27a,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27a,ty_2Elist_2Elist(bool)))))))
     => ! [V0phi: $i] :
          ( mem(V0phi,arr(A_27a,bool))
         => ! [V4w: tp__c_ty_2Elist_2Elist_o] : ( ap(f2440(A_27a,V1c,V0phi),inj__c_ty_2Elist_2Elist_o(V4w)) = ap(V0phi,ap(ap(c_2ECoder_2Edecoder(A_27a),V1c),inj__c_ty_2Elist_2Elist_o(V4w))) ) ) ) ).

tff(conj_thm_2EEncodeVar_2Efixed__width__univ,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(A_27a,bool))
     => ! [V1c: $i] :
          ( mem(V1c,ty_2Epair_2Eprod(arr(A_27a,bool),ty_2Epair_2Eprod(arr(A_27a,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27a,ty_2Elist_2Elist(bool)))))))
         => ! [V2n: tp__ty_2Enum_2Enum] :
              ( ( p(ap(c_2ECoder_2Ewf__coder(A_27a),V1c))
                & p(ap(ap(c_2EEncodeVar_2Efixed__width(A_27a),inj__ty_2Enum_2Enum(V2n)),V1c)) )
             => ( ! [V3x: $i] :
                    ( mem(V3x,A_27a)
                   => ( p(ap(ap(c_2ECoder_2Edomain(A_27a),V1c),V3x))
                     => p(ap(V0phi,V3x)) ) )
              <=> p(ap(ap(c_2Ebool_2ERES__FORALL(ty_2Elist_2Elist(bool)),ap(c_2EEncodeVar_2Eof__length(bool),inj__ty_2Enum_2Enum(V2n))),f2440(A_27a,V1c,V0phi))) ) ) ) ) ).

tff(lamtp_f2441,type,
    f2441: ( del * $i ) > $i ).

tff(lameq_f2441,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(ty_2Elist_2Elist(A_27a),bool))
     => ! [V2w: $i] : ( ap(f2441(A_27a,V0phi),V2w) = ap(V0phi,V2w) ) ) ).

tff(lamtp_f2442,type,
    f2442: ( del * $i * $i ) > $i ).

tff(lameq_f2442,axiom,
    ! [A_27a: del,V3x: $i] :
      ( mem(V3x,A_27a)
     => ! [V0phi: $i] :
          ( mem(V0phi,arr(ty_2Elist_2Elist(A_27a),bool))
         => ! [V4w: $i] : ( ap(f2442(A_27a,V3x,V0phi),V4w) = ap(V0phi,ap(ap(c_2Elist_2ECONS(A_27a),V3x),V4w)) ) ) ) ).

tff(conj_thm_2EEncodeVar_2Eof__length__univ__suc,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(ty_2Elist_2Elist(A_27a),bool))
     => ! [V1n: tp__ty_2Enum_2Enum] :
          ( p(ap(ap(c_2Ebool_2ERES__FORALL(ty_2Elist_2Elist(A_27a)),ap(c_2EEncodeVar_2Eof__length(A_27a),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1n)))),f2441(A_27a,V0phi)))
        <=> ! [V3x: $i] :
              ( mem(V3x,A_27a)
             => p(ap(ap(c_2Ebool_2ERES__FORALL(ty_2Elist_2Elist(A_27a)),ap(c_2EEncodeVar_2Eof__length(A_27a),inj__ty_2Enum_2Enum(V1n))),f2442(A_27a,V3x,V0phi))) ) ) ) ).

tff(lamtp_f2443,type,
    f2443: ( del * $i ) > $i ).

tff(lameq_f2443,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(ty_2Elist_2Elist(A_27a),bool))
     => ! [V1w: $i] : ( ap(f2443(A_27a,V0phi),V1w) = ap(V0phi,V1w) ) ) ).

tff(conj_thm_2EEncodeVar_2Eof__length__univ__zero,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(ty_2Elist_2Elist(A_27a),bool))
     => ( p(ap(ap(c_2Ebool_2ERES__FORALL(ty_2Elist_2Elist(A_27a)),ap(c_2EEncodeVar_2Eof__length(A_27a),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),f2443(A_27a,V0phi)))
      <=> p(ap(V0phi,c_2Elist_2ENIL(A_27a))) ) ) ).

tff(conj_thm_2EEncodeVar_2Efixed__width__exists,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(A_27a,bool))
     => ! [V1c: $i] :
          ( mem(V1c,ty_2Epair_2Eprod(arr(A_27a,bool),ty_2Epair_2Eprod(arr(A_27a,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27a,ty_2Elist_2Elist(bool)))))))
         => ! [V2n: tp__ty_2Enum_2Enum] :
              ( ( p(ap(c_2ECoder_2Ewf__coder(A_27a),V1c))
                & p(ap(ap(c_2EEncodeVar_2Efixed__width(A_27a),inj__ty_2Enum_2Enum(V2n)),V1c)) )
             => ( ? [V3x: $i] :
                    ( mem(V3x,A_27a)
                    & p(ap(ap(c_2ECoder_2Edomain(A_27a),V1c),V3x))
                    & p(ap(V0phi,V3x)) )
              <=> p(ap(ap(c_2Ebool_2ERES__EXISTS(ty_2Elist_2Elist(bool)),ap(c_2EEncodeVar_2Eof__length(bool),inj__ty_2Enum_2Enum(V2n))),f2440(A_27a,V1c,V0phi))) ) ) ) ) ).

tff(conj_thm_2EEncodeVar_2Eof__length__exists__suc,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(ty_2Elist_2Elist(A_27a),bool))
     => ! [V1n: tp__ty_2Enum_2Enum] :
          ( p(ap(ap(c_2Ebool_2ERES__EXISTS(ty_2Elist_2Elist(A_27a)),ap(c_2EEncodeVar_2Eof__length(A_27a),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1n)))),f2441(A_27a,V0phi)))
        <=> ? [V3x: $i] :
              ( mem(V3x,A_27a)
              & p(ap(ap(c_2Ebool_2ERES__EXISTS(ty_2Elist_2Elist(A_27a)),ap(c_2EEncodeVar_2Eof__length(A_27a),inj__ty_2Enum_2Enum(V1n))),f2442(A_27a,V3x,V0phi))) ) ) ) ).

tff(conj_thm_2EEncodeVar_2Eof__length__exists__zero,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( mem(V0phi,arr(ty_2Elist_2Elist(A_27a),bool))
     => ( p(ap(ap(c_2Ebool_2ERES__EXISTS(ty_2Elist_2Elist(A_27a)),ap(c_2EEncodeVar_2Eof__length(A_27a),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),f2443(A_27a,V0phi)))
      <=> p(ap(V0phi,c_2Elist_2ENIL(A_27a))) ) ) ).

tff(conj_thm_2EEncodeVar_2Efixed__width__unit,axiom,
    ! [V0p: $i] :
      ( mem(V0p,arr(ty_2Eone_2Eone,bool))
     => p(ap(ap(c_2EEncodeVar_2Efixed__width(ty_2Eone_2Eone),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2ECoder_2Eunit__coder,V0p))) ) ).

tff(conj_thm_2EEncodeVar_2Efixed__width__bool,axiom,
    ! [V0p: $i] :
      ( mem(V0p,arr(bool,bool))
     => p(ap(ap(c_2EEncodeVar_2Efixed__width(bool),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2ECoder_2Ebool__coder,V0p))) ) ).

tff(conj_thm_2EEncodeVar_2Efixed__width__prod,axiom,
    ! [A_27a: del,A_27b: del,V0c1: $i] :
      ( mem(V0c1,ty_2Epair_2Eprod(arr(A_27a,bool),ty_2Epair_2Eprod(arr(A_27a,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27a,ty_2Elist_2Elist(bool)))))))
     => ! [V1c2: $i] :
          ( mem(V1c2,ty_2Epair_2Eprod(arr(A_27b,bool),ty_2Epair_2Eprod(arr(A_27b,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27b,ty_2Elist_2Elist(bool)))))))
         => ! [V2n1: tp__ty_2Enum_2Enum,V3n2: tp__ty_2Enum_2Enum] :
              ( ( p(ap(ap(c_2EEncodeVar_2Efixed__width(A_27a),inj__ty_2Enum_2Enum(V2n1)),V0c1))
                & p(ap(ap(c_2EEncodeVar_2Efixed__width(A_27b),inj__ty_2Enum_2Enum(V3n2)),V1c2)) )
             => p(ap(ap(c_2EEncodeVar_2Efixed__width(ty_2Epair_2Eprod(A_27a,A_27b)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V2n1)),inj__ty_2Enum_2Enum(V3n2))),ap(ap(c_2ECoder_2Eprod__coder(A_27a,A_27b,A_27a,A_27b),V0c1),V1c2))) ) ) ) ).

tff(conj_thm_2EEncodeVar_2Efixed__width__sum,axiom,
    ! [A_27a: del,A_27b: del,V0c1: $i] :
      ( mem(V0c1,ty_2Epair_2Eprod(arr(A_27a,bool),ty_2Epair_2Eprod(arr(A_27a,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27a,ty_2Elist_2Elist(bool)))))))
     => ! [V1c2: $i] :
          ( mem(V1c2,ty_2Epair_2Eprod(arr(A_27b,bool),ty_2Epair_2Eprod(arr(A_27b,ty_2Elist_2Elist(bool)),arr(ty_2Elist_2Elist(bool),ty_2Eoption_2Eoption(ty_2Epair_2Eprod(A_27b,ty_2Elist_2Elist(bool)))))))
         => ! [V2n: tp__ty_2Enum_2Enum] :
              ( ( p(ap(ap(c_2EEncodeVar_2Efixed__width(A_27a),inj__ty_2Enum_2Enum(V2n)),V0c1))
                & p(ap(ap(c_2EEncodeVar_2Efixed__width(A_27b),inj__ty_2Enum_2Enum(V2n)),V1c2)) )
             => p(ap(ap(c_2EEncodeVar_2Efixed__width(ty_2Esum_2Esum(A_27a,A_27b)),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2n))),ap(ap(c_2ECoder_2Esum__coder(A_27a,A_27b,A_27a,A_27b),V0c1),V1c2))) ) ) ) ).

tff(conj_thm_2EEncodeVar_2Efixed__width__bnum,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1p: $i] :
      ( mem(V1p,arr(ty_2Enum_2Enum,bool))
     => p(ap(ap(c_2EEncodeVar_2Efixed__width(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0m)),ap(ap(c_2ECoder_2Ebnum__coder,inj__ty_2Enum_2Enum(V0m)),V1p))) ) ).

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