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 : 17 ( 0 unt; 2 typ; 0 def)
% Number of atoms : 401 ( 2 equ; 0 cnn)
% Maximal formula atoms : 50 ( 23 avg)
% Number of connectives : 591 ( 0 ~; 0 |; 7 &; 550 @)
% ( 8 <=>; 26 =>; 0 <=; 0 <~>)
% Maximal formula depth : 20 ( 14 avg; 550 nst)
% Number of types : 1 ( 0 usr)
% Number of type conns : 2 ( 2 >; 0 *; 0 +; 0 <<)
% Number of symbols : 40 ( 39 usr; 37 con; 0-2 aty)
% Number of variables : 54 ( 8 ^ 44 !; 2 ?; 54 :)
% SPC : TH0_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2EEncodeVar_2Efixed__width,type,
c_2EEncodeVar_2Efixed__width: del > $i ).
thf(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 ) ) ) ).
thf(tp_c_2EEncodeVar_2Eof__length,type,
c_2EEncodeVar_2Eof__length: del > $i ).
thf(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 ) ) ) ).
thf(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 ) ) ) ) ) ).
thf(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 ) ) ) ).
thf(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 ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ bool )
@ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2ECoder_2Edecoder @ A_27a ) @ V1c ) @ V4w ) ) ) ) ) ) ) ) ) ).
thf(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 ) ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ A_27a )
@ ^ [V2w: $i] : ( ap @ V0phi @ V2w ) ) ) )
<=> ! [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 ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ A_27a )
@ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ A_27a ) @ V3x ) @ V4w ) ) ) ) ) ) ) ) ).
thf(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 ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ A_27a )
@ ^ [V1w: $i] : ( ap @ V0phi @ V1w ) ) ) )
<=> ( p @ ( ap @ V0phi @ ( c_2Elist_2ENIL @ A_27a ) ) ) ) ) ).
thf(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 ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ bool )
@ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2ECoder_2Edecoder @ A_27a ) @ V1c ) @ V4w ) ) ) ) ) ) ) ) ) ).
thf(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 ) ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ A_27a )
@ ^ [V2w: $i] : ( ap @ V0phi @ V2w ) ) ) )
<=> ? [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 ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ A_27a )
@ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ A_27a ) @ V3x ) @ V4w ) ) ) ) ) ) ) ) ).
thf(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 ) ) )
@ ( lam @ ( ty_2Elist_2Elist @ A_27a )
@ ^ [V1w: $i] : ( ap @ V0phi @ V1w ) ) ) )
<=> ( p @ ( ap @ V0phi @ ( c_2Elist_2ENIL @ A_27a ) ) ) ) ) ).
thf(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 ) ) ) ) ).
thf(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 ) ) ) ) ).
thf(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 ) ) ) ) ) ) ).
thf(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 ) ) ) ) ) ) ).
thf(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 ) ) ) ) ).
%------------------------------------------------------------------------------