TPTP Problem File: SWX068+1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SWX068+1 : TPTP v9.1.0. Released v9.1.0.
% Domain   : Software Verification
% Problem  : true/3 or false/3 implies eval/3
% Version  : Especial.
% English  :

% Refs     : [MMP24] Mesnard et al. (2024), ATP for Prolog Verification
% Source   : [Mes24] Mesnard (2024), Email to Geoff Sutcliffe
% Names    : taut32 [Mes24]

% Status   : Theorem
% Rating   : 1.00 v9.1.0
% Syntax   : Number of formulae    :  144 (  34 unt;   0 def)
%            Number of atoms       :  657 ( 198 equ)
%            Maximal formula atoms :   55 (   4 avg)
%            Number of connectives :  651 ( 138   ~; 157   |; 242   &)
%                                         (  45 <=>;  69  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   20 (   6 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :   43 (  41 usr;   1 prp; 0-3 aty)
%            Number of functors    :    8 (   8 usr;   3 con; 0-2 aty)
%            Number of variables   :  490 ( 412   !;  78   ?)
% SPC      : FOF_THM_RFO_SEQ

% Comments :
%------------------------------------------------------------------------------
fof(id1,axiom,
    ! [Xx4,Xx5] : nil != cons(Xx4,Xx5) ).

fof(id2,axiom,
    nil != '1' ).

fof(id3,axiom,
    nil != '0' ).

fof(id4,axiom,
    ! [Xx6] : nil != p(Xx6) ).

fof(id5,axiom,
    ! [Xx7] : nil != neg(Xx7) ).

fof(id6,axiom,
    ! [Xx8,Xx9] : nil != and(Xx8,Xx9) ).

fof(id7,axiom,
    ! [Xx10,Xx11] : nil != or(Xx10,Xx11) ).

fof(id8,axiom,
    ! [Xx12,Xx13,Xx14,Xx15] :
      ( cons(Xx12,Xx13) = cons(Xx14,Xx15)
     => Xx13 = Xx15 ) ).

fof(id9,axiom,
    ! [Xx16,Xx17,Xx18,Xx19] :
      ( cons(Xx16,Xx17) = cons(Xx18,Xx19)
     => Xx16 = Xx18 ) ).

fof(id10,axiom,
    ! [Xx20,Xx21] : '1' != cons(Xx20,Xx21) ).

fof(id11,axiom,
    ! [Xx22,Xx23] : '0' != cons(Xx22,Xx23) ).

fof(id12,axiom,
    ! [Xx24,Xx25,Xx26] : cons(Xx24,Xx25) != p(Xx26) ).

fof(id13,axiom,
    ! [Xx27,Xx28,Xx29] : cons(Xx27,Xx28) != neg(Xx29) ).

fof(id14,axiom,
    ! [Xx30,Xx31,Xx32,Xx33] : cons(Xx30,Xx31) != and(Xx32,Xx33) ).

fof(id15,axiom,
    ! [Xx34,Xx35,Xx36,Xx37] : cons(Xx34,Xx35) != or(Xx36,Xx37) ).

fof(id16,axiom,
    '1' != '0' ).

fof(id17,axiom,
    ! [Xx38] : '1' != p(Xx38) ).

fof(id18,axiom,
    ! [Xx39] : '1' != neg(Xx39) ).

fof(id19,axiom,
    ! [Xx40,Xx41] : '1' != and(Xx40,Xx41) ).

fof(id20,axiom,
    ! [Xx42,Xx43] : '1' != or(Xx42,Xx43) ).

fof(id21,axiom,
    ! [Xx44] : '0' != p(Xx44) ).

fof(id22,axiom,
    ! [Xx45] : '0' != neg(Xx45) ).

fof(id23,axiom,
    ! [Xx46,Xx47] : '0' != and(Xx46,Xx47) ).

fof(id24,axiom,
    ! [Xx48,Xx49] : '0' != or(Xx48,Xx49) ).

fof(id25,axiom,
    ! [Xx50,Xx51] :
      ( p(Xx50) = p(Xx51)
     => Xx50 = Xx51 ) ).

fof(id26,axiom,
    ! [Xx52,Xx53] : p(Xx52) != neg(Xx53) ).

fof(id27,axiom,
    ! [Xx54,Xx55,Xx56] : p(Xx54) != and(Xx55,Xx56) ).

fof(id28,axiom,
    ! [Xx57,Xx58,Xx59] : p(Xx57) != or(Xx58,Xx59) ).

fof(id29,axiom,
    ! [Xx60,Xx61] :
      ( neg(Xx60) = neg(Xx61)
     => Xx60 = Xx61 ) ).

fof(id30,axiom,
    ! [Xx62,Xx63,Xx64] : neg(Xx62) != and(Xx63,Xx64) ).

fof(id31,axiom,
    ! [Xx65,Xx66,Xx67] : neg(Xx65) != or(Xx66,Xx67) ).

fof(id32,axiom,
    ! [Xx68,Xx69,Xx70,Xx71] :
      ( and(Xx68,Xx69) = and(Xx70,Xx71)
     => Xx69 = Xx71 ) ).

fof(id33,axiom,
    ! [Xx72,Xx73,Xx74,Xx75] :
      ( and(Xx72,Xx73) = and(Xx74,Xx75)
     => Xx72 = Xx74 ) ).

fof(id34,axiom,
    ! [Xx76,Xx77,Xx78,Xx79] : and(Xx76,Xx77) != or(Xx78,Xx79) ).

fof(id35,axiom,
    ! [Xx80,Xx81,Xx82,Xx83] :
      ( or(Xx80,Xx81) = or(Xx82,Xx83)
     => Xx81 = Xx83 ) ).

fof(id36,axiom,
    ! [Xx84,Xx85,Xx86,Xx87] :
      ( or(Xx84,Xx85) = or(Xx86,Xx87)
     => Xx84 = Xx86 ) ).

fof(id37,axiom,
    gr(nil) ).

fof(id38,axiom,
    ! [Xx88,Xx89] :
      ( ( gr(Xx88)
        & gr(Xx89) )
    <=> gr(cons(Xx88,Xx89)) ) ).

fof(id39,axiom,
    gr('1') ).

fof(id40,axiom,
    gr('0') ).

fof(id41,axiom,
    ! [Xx90] :
      ( gr(Xx90)
    <=> gr(p(Xx90)) ) ).

fof(id42,axiom,
    ! [Xx91] :
      ( gr(Xx91)
    <=> gr(neg(Xx91)) ) ).

fof(id43,axiom,
    ! [Xx92,Xx93] :
      ( ( gr(Xx92)
        & gr(Xx93) )
    <=> gr(and(Xx92,Xx93)) ) ).

fof(id44,axiom,
    ! [Xx94,Xx95] :
      ( ( gr(Xx94)
        & gr(Xx95) )
    <=> gr(or(Xx94,Xx95)) ) ).

fof(id45,axiom,
    ! [Xx96,Xx97] :
      ~ ( defined_succeeds(Xx96,Xx97)
        & defined_fails(Xx96,Xx97) ) ).

fof(id46,axiom,
    ! [Xx96,Xx97] :
      ( defined_terminates(Xx96,Xx97)
     => ( defined_succeeds(Xx96,Xx97)
        | defined_fails(Xx96,Xx97) ) ) ).

fof(id47,axiom,
    ! [Xx98,Xx99,Xx100] :
      ~ ( eval_succeeds(Xx98,Xx99,Xx100)
        & eval_fails(Xx98,Xx99,Xx100) ) ).

fof(id48,axiom,
    ! [Xx98,Xx99,Xx100] :
      ( eval_terminates(Xx98,Xx99,Xx100)
     => ( eval_succeeds(Xx98,Xx99,Xx100)
        | eval_fails(Xx98,Xx99,Xx100) ) ) ).

fof(id49,axiom,
    ! [Xx101,Xx102,Xx103] :
      ~ ( false_succeeds(Xx101,Xx102,Xx103)
        & false_fails(Xx101,Xx102,Xx103) ) ).

fof(id50,axiom,
    ! [Xx101,Xx102,Xx103] :
      ( false_terminates(Xx101,Xx102,Xx103)
     => ( false_succeeds(Xx101,Xx102,Xx103)
        | false_fails(Xx101,Xx102,Xx103) ) ) ).

fof(id51,axiom,
    ! [Xx104,Xx105,Xx106] :
      ~ ( true_succeeds(Xx104,Xx105,Xx106)
        & true_fails(Xx104,Xx105,Xx106) ) ).

fof(id52,axiom,
    ! [Xx104,Xx105,Xx106] :
      ( true_terminates(Xx104,Xx105,Xx106)
     => ( true_succeeds(Xx104,Xx105,Xx106)
        | true_fails(Xx104,Xx105,Xx106) ) ) ).

fof(id53,axiom,
    ! [Xx107] :
      ~ ( satisfiable_succeeds(Xx107)
        & satisfiable_fails(Xx107) ) ).

fof(id54,axiom,
    ! [Xx107] :
      ( satisfiable_terminates(Xx107)
     => ( satisfiable_succeeds(Xx107)
        | satisfiable_fails(Xx107) ) ) ).

fof(id55,axiom,
    ! [Xx108] :
      ~ ( valid_succeeds(Xx108)
        & valid_fails(Xx108) ) ).

fof(id56,axiom,
    ! [Xx108] :
      ( valid_terminates(Xx108)
     => ( valid_succeeds(Xx108)
        | valid_fails(Xx108) ) ) ).

fof(id57,axiom,
    ! [Xx109] :
      ~ ( incon_succeeds(Xx109)
        & incon_fails(Xx109) ) ).

fof(id58,axiom,
    ! [Xx109] :
      ( incon_terminates(Xx109)
     => ( incon_succeeds(Xx109)
        | incon_fails(Xx109) ) ) ).

fof(id59,axiom,
    ! [Xx110] :
      ~ ( interpretation_succeeds(Xx110)
        & interpretation_fails(Xx110) ) ).

fof(id60,axiom,
    ! [Xx110] :
      ( interpretation_terminates(Xx110)
     => ( interpretation_succeeds(Xx110)
        | interpretation_fails(Xx110) ) ) ).

fof(id61,axiom,
    ! [Xx111] :
      ~ ( literal_list_succeeds(Xx111)
        & literal_list_fails(Xx111) ) ).

fof(id62,axiom,
    ! [Xx111] :
      ( literal_list_terminates(Xx111)
     => ( literal_list_succeeds(Xx111)
        | literal_list_fails(Xx111) ) ) ).

fof(id63,axiom,
    ! [Xx112] :
      ~ ( literal_succeeds(Xx112)
        & literal_fails(Xx112) ) ).

fof(id64,axiom,
    ! [Xx112] :
      ( literal_terminates(Xx112)
     => ( literal_succeeds(Xx112)
        | literal_fails(Xx112) ) ) ).

fof(id65,axiom,
    ! [Xx113] :
      ~ ( formula_succeeds(Xx113)
        & formula_fails(Xx113) ) ).

fof(id66,axiom,
    ! [Xx113] :
      ( formula_terminates(Xx113)
     => ( formula_succeeds(Xx113)
        | formula_fails(Xx113) ) ) ).

fof(id67,axiom,
    ! [Xx114,Xx115] :
      ~ ( member_succeeds(Xx114,Xx115)
        & member_fails(Xx114,Xx115) ) ).

fof(id68,axiom,
    ! [Xx114,Xx115] :
      ( member_terminates(Xx114,Xx115)
     => ( member_succeeds(Xx114,Xx115)
        | member_fails(Xx114,Xx115) ) ) ).

fof(id69,axiom,
    ! [Xx116] :
      ~ ( list_succeeds(Xx116)
        & list_fails(Xx116) ) ).

fof(id70,axiom,
    ! [Xx116] :
      ( list_terminates(Xx116)
     => ( list_succeeds(Xx116)
        | list_fails(Xx116) ) ) ).

fof(id71,axiom,
    ! [Xx1,Xx2] :
      ( defined_succeeds(Xx1,Xx2)
    <=> ( ? [Xx3,Xx4] :
            ( Xx1 = or(Xx3,Xx4)
            & defined_succeeds(Xx3,Xx2)
            & defined_succeeds(Xx4,Xx2) )
        | ? [Xx5,Xx6] :
            ( Xx1 = and(Xx5,Xx6)
            & defined_succeeds(Xx5,Xx2)
            & defined_succeeds(Xx6,Xx2) )
        | ? [Xx7] :
            ( Xx1 = neg(Xx7)
            & defined_succeeds(Xx7,Xx2) )
        | ? [Xx8] :
            ( Xx1 = p(Xx8)
            & member_succeeds(neg(p(Xx8)),Xx2) )
        | ? [Xx9] :
            ( Xx1 = p(Xx9)
            & member_succeeds(p(Xx9),Xx2) ) ) ) ).

fof(id72,axiom,
    ! [Xx1,Xx2] :
      ( defined_fails(Xx1,Xx2)
    <=> ( ! [Xx3,Xx4] :
            ( Xx1 != or(Xx3,Xx4)
            | defined_fails(Xx3,Xx2)
            | defined_fails(Xx4,Xx2) )
        & ! [Xx5,Xx6] :
            ( Xx1 != and(Xx5,Xx6)
            | defined_fails(Xx5,Xx2)
            | defined_fails(Xx6,Xx2) )
        & ! [Xx7] :
            ( Xx1 != neg(Xx7)
            | defined_fails(Xx7,Xx2) )
        & ! [Xx8] :
            ( Xx1 != p(Xx8)
            | member_fails(neg(p(Xx8)),Xx2) )
        & ! [Xx9] :
            ( Xx1 != p(Xx9)
            | member_fails(p(Xx9),Xx2) ) ) ) ).

fof(id73,axiom,
    ! [Xx1,Xx2] :
      ( defined_terminates(Xx1,Xx2)
    <=> ( ! [Xx3,Xx4] :
            ( $true
            & ( Xx1 != or(Xx3,Xx4)
              | ( defined_terminates(Xx3,Xx2)
                & ( defined_fails(Xx3,Xx2)
                  | defined_terminates(Xx4,Xx2) ) ) ) )
        & ! [Xx5,Xx6] :
            ( $true
            & ( Xx1 != and(Xx5,Xx6)
              | ( defined_terminates(Xx5,Xx2)
                & ( defined_fails(Xx5,Xx2)
                  | defined_terminates(Xx6,Xx2) ) ) ) )
        & ! [Xx7] :
            ( $true
            & ( Xx1 != neg(Xx7)
              | defined_terminates(Xx7,Xx2) ) )
        & ! [Xx8] :
            ( $true
            & ( Xx1 != p(Xx8)
              | member_terminates(neg(p(Xx8)),Xx2) ) )
        & ! [Xx9] :
            ( $true
            & ( Xx1 != p(Xx9)
              | member_terminates(p(Xx9),Xx2) ) ) ) ) ).

fof(id74,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( eval_succeeds(Xx1,Xx2,Xx3)
    <=> ( ? [Xx4,Xx5] :
            ( Xx1 = or(Xx4,Xx5)
            & Xx3 = '0'
            & eval_succeeds(Xx4,Xx2,'0')
            & eval_succeeds(Xx5,Xx2,'0') )
        | ? [Xx6,Xx7] :
            ( Xx1 = or(Xx6,Xx7)
            & Xx3 = '1'
            & eval_succeeds(Xx7,Xx2,'1') )
        | ? [Xx8,Xx9] :
            ( Xx1 = or(Xx8,Xx9)
            & Xx3 = '1'
            & eval_succeeds(Xx8,Xx2,'1') )
        | ? [Xx10,Xx11] :
            ( Xx1 = and(Xx10,Xx11)
            & Xx3 = '0'
            & eval_succeeds(Xx11,Xx2,'0') )
        | ? [Xx12,Xx13] :
            ( Xx1 = and(Xx12,Xx13)
            & Xx3 = '0'
            & eval_succeeds(Xx12,Xx2,'0') )
        | ? [Xx14,Xx15] :
            ( Xx1 = and(Xx14,Xx15)
            & Xx3 = '1'
            & eval_succeeds(Xx14,Xx2,'1')
            & eval_succeeds(Xx15,Xx2,'1') )
        | ? [Xx16] :
            ( Xx1 = neg(Xx16)
            & Xx3 = '0'
            & eval_succeeds(Xx16,Xx2,'1') )
        | ? [Xx17] :
            ( Xx1 = neg(Xx17)
            & Xx3 = '1'
            & eval_succeeds(Xx17,Xx2,'0') )
        | ? [Xx18] :
            ( Xx1 = p(Xx18)
            & Xx3 = '0'
            & member_succeeds(neg(p(Xx18)),Xx2) )
        | ? [Xx19] :
            ( Xx1 = p(Xx19)
            & Xx3 = '1'
            & member_succeeds(p(Xx19),Xx2) ) ) ) ).

fof(id75,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( eval_fails(Xx1,Xx2,Xx3)
    <=> ( ! [Xx4,Xx5] :
            ( Xx1 != or(Xx4,Xx5)
            | Xx3 != '0'
            | eval_fails(Xx4,Xx2,'0')
            | eval_fails(Xx5,Xx2,'0') )
        & ! [Xx6,Xx7] :
            ( Xx1 != or(Xx6,Xx7)
            | Xx3 != '1'
            | eval_fails(Xx7,Xx2,'1') )
        & ! [Xx8,Xx9] :
            ( Xx1 != or(Xx8,Xx9)
            | Xx3 != '1'
            | eval_fails(Xx8,Xx2,'1') )
        & ! [Xx10,Xx11] :
            ( Xx1 != and(Xx10,Xx11)
            | Xx3 != '0'
            | eval_fails(Xx11,Xx2,'0') )
        & ! [Xx12,Xx13] :
            ( Xx1 != and(Xx12,Xx13)
            | Xx3 != '0'
            | eval_fails(Xx12,Xx2,'0') )
        & ! [Xx14,Xx15] :
            ( Xx1 != and(Xx14,Xx15)
            | Xx3 != '1'
            | eval_fails(Xx14,Xx2,'1')
            | eval_fails(Xx15,Xx2,'1') )
        & ! [Xx16] :
            ( Xx1 != neg(Xx16)
            | Xx3 != '0'
            | eval_fails(Xx16,Xx2,'1') )
        & ! [Xx17] :
            ( Xx1 != neg(Xx17)
            | Xx3 != '1'
            | eval_fails(Xx17,Xx2,'0') )
        & ! [Xx18] :
            ( Xx1 != p(Xx18)
            | Xx3 != '0'
            | member_fails(neg(p(Xx18)),Xx2) )
        & ! [Xx19] :
            ( Xx1 != p(Xx19)
            | Xx3 != '1'
            | member_fails(p(Xx19),Xx2) ) ) ) ).

fof(id76,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( eval_terminates(Xx1,Xx2,Xx3)
    <=> ( ! [Xx4,Xx5] :
            ( $true
            & ( Xx1 != or(Xx4,Xx5)
              | ( $true
                & ( Xx3 != '0'
                  | ( eval_terminates(Xx4,Xx2,'0')
                    & ( eval_fails(Xx4,Xx2,'0')
                      | eval_terminates(Xx5,Xx2,'0') ) ) ) ) ) )
        & ! [Xx6,Xx7] :
            ( $true
            & ( Xx1 != or(Xx6,Xx7)
              | ( $true
                & ( Xx3 != '1'
                  | eval_terminates(Xx7,Xx2,'1') ) ) ) )
        & ! [Xx8,Xx9] :
            ( $true
            & ( Xx1 != or(Xx8,Xx9)
              | ( $true
                & ( Xx3 != '1'
                  | eval_terminates(Xx8,Xx2,'1') ) ) ) )
        & ! [Xx10,Xx11] :
            ( $true
            & ( Xx1 != and(Xx10,Xx11)
              | ( $true
                & ( Xx3 != '0'
                  | eval_terminates(Xx11,Xx2,'0') ) ) ) )
        & ! [Xx12,Xx13] :
            ( $true
            & ( Xx1 != and(Xx12,Xx13)
              | ( $true
                & ( Xx3 != '0'
                  | eval_terminates(Xx12,Xx2,'0') ) ) ) )
        & ! [Xx14,Xx15] :
            ( $true
            & ( Xx1 != and(Xx14,Xx15)
              | ( $true
                & ( Xx3 != '1'
                  | ( eval_terminates(Xx14,Xx2,'1')
                    & ( eval_fails(Xx14,Xx2,'1')
                      | eval_terminates(Xx15,Xx2,'1') ) ) ) ) ) )
        & ! [Xx16] :
            ( $true
            & ( Xx1 != neg(Xx16)
              | ( $true
                & ( Xx3 != '0'
                  | eval_terminates(Xx16,Xx2,'1') ) ) ) )
        & ! [Xx17] :
            ( $true
            & ( Xx1 != neg(Xx17)
              | ( $true
                & ( Xx3 != '1'
                  | eval_terminates(Xx17,Xx2,'0') ) ) ) )
        & ! [Xx18] :
            ( $true
            & ( Xx1 != p(Xx18)
              | ( $true
                & ( Xx3 != '0'
                  | member_terminates(neg(p(Xx18)),Xx2) ) ) ) )
        & ! [Xx19] :
            ( $true
            & ( Xx1 != p(Xx19)
              | ( $true
                & ( Xx3 != '1'
                  | member_terminates(p(Xx19),Xx2) ) ) ) ) ) ) ).

fof(id77,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( false_succeeds(Xx1,Xx2,Xx3)
    <=> ( ? [Xx4,Xx5,Xx6] :
            ( Xx1 = or(Xx4,Xx5)
            & false_succeeds(Xx4,Xx2,Xx6)
            & false_succeeds(Xx5,Xx6,Xx3) )
        | ? [Xx7,Xx8] :
            ( Xx1 = and(Xx7,Xx8)
            & false_succeeds(Xx8,Xx2,Xx3) )
        | ? [Xx9,Xx10] :
            ( Xx1 = and(Xx9,Xx10)
            & false_succeeds(Xx9,Xx2,Xx3) )
        | ? [Xx11] :
            ( Xx1 = neg(Xx11)
            & true_succeeds(Xx11,Xx2,Xx3) )
        | ? [Xx12] :
            ( Xx1 = p(Xx12)
            & Xx3 = cons(neg(p(Xx12)),Xx2)
            & member_fails(p(Xx12),Xx2) ) ) ) ).

fof(id78,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( false_fails(Xx1,Xx2,Xx3)
    <=> ( ! [Xx4,Xx5,Xx6] :
            ( Xx1 != or(Xx4,Xx5)
            | false_fails(Xx4,Xx2,Xx6)
            | false_fails(Xx5,Xx6,Xx3) )
        & ! [Xx7,Xx8] :
            ( Xx1 != and(Xx7,Xx8)
            | false_fails(Xx8,Xx2,Xx3) )
        & ! [Xx9,Xx10] :
            ( Xx1 != and(Xx9,Xx10)
            | false_fails(Xx9,Xx2,Xx3) )
        & ! [Xx11] :
            ( Xx1 != neg(Xx11)
            | true_fails(Xx11,Xx2,Xx3) )
        & ! [Xx12] :
            ( Xx1 != p(Xx12)
            | Xx3 != cons(neg(p(Xx12)),Xx2)
            | member_succeeds(p(Xx12),Xx2) ) ) ) ).

fof(id79,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( false_terminates(Xx1,Xx2,Xx3)
    <=> ( ! [Xx4,Xx5,Xx6] :
            ( $true
            & ( Xx1 != or(Xx4,Xx5)
              | ( false_terminates(Xx4,Xx2,Xx6)
                & ( false_fails(Xx4,Xx2,Xx6)
                  | false_terminates(Xx5,Xx6,Xx3) ) ) ) )
        & ! [Xx7,Xx8] :
            ( $true
            & ( Xx1 != and(Xx7,Xx8)
              | false_terminates(Xx8,Xx2,Xx3) ) )
        & ! [Xx9,Xx10] :
            ( $true
            & ( Xx1 != and(Xx9,Xx10)
              | false_terminates(Xx9,Xx2,Xx3) ) )
        & ! [Xx11] :
            ( $true
            & ( Xx1 != neg(Xx11)
              | true_terminates(Xx11,Xx2,Xx3) ) )
        & ! [Xx12] :
            ( $true
            & ( Xx1 != p(Xx12)
              | ( $true
                & ( Xx3 != cons(neg(p(Xx12)),Xx2)
                  | ( member_terminates(p(Xx12),Xx2)
                    & gr(p(Xx12))
                    & gr(Xx2) ) ) ) ) ) ) ) ).

fof(id80,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( true_succeeds(Xx1,Xx2,Xx3)
    <=> ( ? [Xx4,Xx5] :
            ( Xx1 = or(Xx4,Xx5)
            & true_succeeds(Xx5,Xx2,Xx3) )
        | ? [Xx6,Xx7] :
            ( Xx1 = or(Xx6,Xx7)
            & true_succeeds(Xx6,Xx2,Xx3) )
        | ? [Xx8,Xx9,Xx10] :
            ( Xx1 = and(Xx8,Xx9)
            & true_succeeds(Xx8,Xx2,Xx10)
            & true_succeeds(Xx9,Xx10,Xx3) )
        | ? [Xx11] :
            ( Xx1 = neg(Xx11)
            & false_succeeds(Xx11,Xx2,Xx3) )
        | ? [Xx12] :
            ( Xx1 = p(Xx12)
            & Xx3 = cons(p(Xx12),Xx2)
            & member_fails(neg(p(Xx12)),Xx2) ) ) ) ).

fof(id81,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( true_fails(Xx1,Xx2,Xx3)
    <=> ( ! [Xx4,Xx5] :
            ( Xx1 != or(Xx4,Xx5)
            | true_fails(Xx5,Xx2,Xx3) )
        & ! [Xx6,Xx7] :
            ( Xx1 != or(Xx6,Xx7)
            | true_fails(Xx6,Xx2,Xx3) )
        & ! [Xx8,Xx9,Xx10] :
            ( Xx1 != and(Xx8,Xx9)
            | true_fails(Xx8,Xx2,Xx10)
            | true_fails(Xx9,Xx10,Xx3) )
        & ! [Xx11] :
            ( Xx1 != neg(Xx11)
            | false_fails(Xx11,Xx2,Xx3) )
        & ! [Xx12] :
            ( Xx1 != p(Xx12)
            | Xx3 != cons(p(Xx12),Xx2)
            | member_succeeds(neg(p(Xx12)),Xx2) ) ) ) ).

fof(id82,axiom,
    ! [Xx1,Xx2,Xx3] :
      ( true_terminates(Xx1,Xx2,Xx3)
    <=> ( ! [Xx4,Xx5] :
            ( $true
            & ( Xx1 != or(Xx4,Xx5)
              | true_terminates(Xx5,Xx2,Xx3) ) )
        & ! [Xx6,Xx7] :
            ( $true
            & ( Xx1 != or(Xx6,Xx7)
              | true_terminates(Xx6,Xx2,Xx3) ) )
        & ! [Xx8,Xx9,Xx10] :
            ( $true
            & ( Xx1 != and(Xx8,Xx9)
              | ( true_terminates(Xx8,Xx2,Xx10)
                & ( true_fails(Xx8,Xx2,Xx10)
                  | true_terminates(Xx9,Xx10,Xx3) ) ) ) )
        & ! [Xx11] :
            ( $true
            & ( Xx1 != neg(Xx11)
              | false_terminates(Xx11,Xx2,Xx3) ) )
        & ! [Xx12] :
            ( $true
            & ( Xx1 != p(Xx12)
              | ( $true
                & ( Xx3 != cons(p(Xx12),Xx2)
                  | ( member_terminates(neg(p(Xx12)),Xx2)
                    & gr(neg(p(Xx12)))
                    & gr(Xx2) ) ) ) ) ) ) ) ).

fof(id83,axiom,
    ! [Xx1] :
      ( satisfiable_succeeds(Xx1)
    <=> ? [Xx2] : true_succeeds(Xx1,nil,Xx2) ) ).

fof(id84,axiom,
    ! [Xx1] :
      ( satisfiable_fails(Xx1)
    <=> ! [Xx2] : true_fails(Xx1,nil,Xx2) ) ).

fof(id85,axiom,
    ! [Xx1] :
      ( satisfiable_terminates(Xx1)
    <=> ! [Xx2] : true_terminates(Xx1,nil,Xx2) ) ).

fof(id86,axiom,
    ! [Xx1] :
      ( valid_succeeds(Xx1)
    <=> satisfiable_fails(neg(Xx1)) ) ).

fof(id87,axiom,
    ! [Xx1] :
      ( valid_fails(Xx1)
    <=> satisfiable_succeeds(neg(Xx1)) ) ).

fof(id88,axiom,
    ! [Xx1] :
      ( valid_terminates(Xx1)
    <=> ( satisfiable_terminates(neg(Xx1))
        & gr(neg(Xx1)) ) ) ).

fof(id89,axiom,
    ! [Xx1] :
      ( incon_succeeds(Xx1)
    <=> ? [Xx2] :
          ( member_succeeds(p(Xx2),Xx1)
          & member_succeeds(neg(p(Xx2)),Xx1) ) ) ).

fof(id90,axiom,
    ! [Xx1] :
      ( incon_fails(Xx1)
    <=> ! [Xx2] :
          ( member_fails(p(Xx2),Xx1)
          | member_fails(neg(p(Xx2)),Xx1) ) ) ).

fof(id91,axiom,
    ! [Xx1] :
      ( incon_terminates(Xx1)
    <=> ! [Xx2] :
          ( member_terminates(p(Xx2),Xx1)
          & ( member_fails(p(Xx2),Xx1)
            | member_terminates(neg(p(Xx2)),Xx1) ) ) ) ).

fof(id92,axiom,
    ! [Xx1] :
      ( interpretation_succeeds(Xx1)
    <=> ( literal_list_succeeds(Xx1)
        & incon_fails(Xx1) ) ) ).

fof(id93,axiom,
    ! [Xx1] :
      ( interpretation_fails(Xx1)
    <=> ( literal_list_fails(Xx1)
        | incon_succeeds(Xx1) ) ) ).

fof(id94,axiom,
    ! [Xx1] :
      ( interpretation_terminates(Xx1)
    <=> ( literal_list_terminates(Xx1)
        & ( literal_list_fails(Xx1)
          | ( incon_terminates(Xx1)
            & gr(Xx1) ) ) ) ) ).

fof(id95,axiom,
    ! [Xx1] :
      ( literal_list_succeeds(Xx1)
    <=> ( ? [Xx2,Xx3] :
            ( Xx1 = cons(Xx2,Xx3)
            & literal_succeeds(Xx2)
            & literal_list_succeeds(Xx3) )
        | Xx1 = nil ) ) ).

fof(id96,axiom,
    ! [Xx1] :
      ( literal_list_fails(Xx1)
    <=> ( ! [Xx2,Xx3] :
            ( Xx1 != cons(Xx2,Xx3)
            | literal_fails(Xx2)
            | literal_list_fails(Xx3) )
        & Xx1 != nil ) ) ).

fof(id97,axiom,
    ! [Xx1] :
      ( literal_list_terminates(Xx1)
    <=> ( ! [Xx2,Xx3] :
            ( $true
            & ( Xx1 != cons(Xx2,Xx3)
              | ( literal_terminates(Xx2)
                & ( literal_fails(Xx2)
                  | literal_list_terminates(Xx3) ) ) ) )
        & $true ) ) ).

fof(id98,axiom,
    ! [Xx1] :
      ( literal_succeeds(Xx1)
    <=> ( ? [Xx2] : Xx1 = neg(p(Xx2))
        | ? [Xx3] : Xx1 = p(Xx3) ) ) ).

fof(id99,axiom,
    ! [Xx1] :
      ( literal_fails(Xx1)
    <=> ( ! [Xx2] : Xx1 != neg(p(Xx2))
        & ! [Xx3] : Xx1 != p(Xx3) ) ) ).

fof(id100,axiom,
    ! [Xx1] :
      ( literal_terminates(Xx1)
    <=> ( ! [Xx2] : $true
        & ! [Xx3] : $true ) ) ).

fof(id101,axiom,
    ! [Xx1] :
      ( formula_succeeds(Xx1)
    <=> ( ? [Xx2,Xx3] :
            ( Xx1 = or(Xx2,Xx3)
            & formula_succeeds(Xx2)
            & formula_succeeds(Xx3) )
        | ? [Xx4,Xx5] :
            ( Xx1 = and(Xx4,Xx5)
            & formula_succeeds(Xx4)
            & formula_succeeds(Xx5) )
        | ? [Xx6] :
            ( Xx1 = neg(Xx6)
            & formula_succeeds(Xx6) )
        | ? [Xx7] : Xx1 = p(Xx7) ) ) ).

fof(id102,axiom,
    ! [Xx1] :
      ( formula_fails(Xx1)
    <=> ( ! [Xx2,Xx3] :
            ( Xx1 != or(Xx2,Xx3)
            | formula_fails(Xx2)
            | formula_fails(Xx3) )
        & ! [Xx4,Xx5] :
            ( Xx1 != and(Xx4,Xx5)
            | formula_fails(Xx4)
            | formula_fails(Xx5) )
        & ! [Xx6] :
            ( Xx1 != neg(Xx6)
            | formula_fails(Xx6) )
        & ! [Xx7] : Xx1 != p(Xx7) ) ) ).

fof(id103,axiom,
    ! [Xx1] :
      ( formula_terminates(Xx1)
    <=> ( ! [Xx2,Xx3] :
            ( $true
            & ( Xx1 != or(Xx2,Xx3)
              | ( formula_terminates(Xx2)
                & ( formula_fails(Xx2)
                  | formula_terminates(Xx3) ) ) ) )
        & ! [Xx4,Xx5] :
            ( $true
            & ( Xx1 != and(Xx4,Xx5)
              | ( formula_terminates(Xx4)
                & ( formula_fails(Xx4)
                  | formula_terminates(Xx5) ) ) ) )
        & ! [Xx6] :
            ( $true
            & ( Xx1 != neg(Xx6)
              | formula_terminates(Xx6) ) )
        & ! [Xx7] : $true ) ) ).

fof(id104,axiom,
    ! [Xx1,Xx2] :
      ( member_succeeds(Xx1,Xx2)
    <=> ( ? [Xx3,Xx4] :
            ( Xx2 = cons(Xx3,Xx4)
            & member_succeeds(Xx1,Xx4) )
        | ? [Xx5] : Xx2 = cons(Xx1,Xx5) ) ) ).

fof(id105,axiom,
    ! [Xx1,Xx2] :
      ( member_fails(Xx1,Xx2)
    <=> ( ! [Xx3,Xx4] :
            ( Xx2 != cons(Xx3,Xx4)
            | member_fails(Xx1,Xx4) )
        & ! [Xx5] : Xx2 != cons(Xx1,Xx5) ) ) ).

fof(id106,axiom,
    ! [Xx1,Xx2] :
      ( member_terminates(Xx1,Xx2)
    <=> ( ! [Xx3,Xx4] :
            ( $true
            & ( Xx2 != cons(Xx3,Xx4)
              | member_terminates(Xx1,Xx4) ) )
        & ! [Xx5] : $true ) ) ).

fof(id107,axiom,
    ! [Xx1] :
      ( list_succeeds(Xx1)
    <=> ( ? [Xx2,Xx3] :
            ( Xx1 = cons(Xx2,Xx3)
            & list_succeeds(Xx3) )
        | Xx1 = nil ) ) ).

fof(id108,axiom,
    ! [Xx1] :
      ( list_fails(Xx1)
    <=> ( ! [Xx2,Xx3] :
            ( Xx1 != cons(Xx2,Xx3)
            | list_fails(Xx3) )
        & Xx1 != nil ) ) ).

fof(id109,axiom,
    ! [Xx1] :
      ( list_terminates(Xx1)
    <=> ( ! [Xx2,Xx3] :
            ( $true
            & ( Xx1 != cons(Xx2,Xx3)
              | list_terminates(Xx3) ) )
        & $true ) ) ).

fof('sub/2',axiom,
    ! [Xl1,Xl2] :
      ( sub(Xl1,Xl2)
    <=> ! [Xx] :
          ( member_succeeds(Xx,Xl1)
         => member_succeeds(Xx,Xl2) ) ) ).

fof('lemma-(member:termination)',axiom,
    ! [Xx,Xl] :
      ( list_succeeds(Xl)
     => member_terminates(Xx,Xl) ) ).

fof('lemma-(member:success:no)',axiom,
    ! [Xx,Xy,Xl] :
      ( ( member_succeeds(Xx,cons(Xy,Xl))
        & Xx != Xy )
     => member_succeeds(Xx,Xl) ) ).

fof('lemma-(sub:cons)',axiom,
    ! [Xx,Xi] : sub(Xi,cons(Xx,Xi)) ).

fof('lemma-(sub:trans)',axiom,
    ! [Xi,Xj,Xk] :
      ( ( sub(Xi,Xj)
        & sub(Xj,Xk) )
     => sub(Xi,Xk) ) ).

fof('lemma-(sub:nil)',axiom,
    ! [Xl] : sub(nil,Xl) ).

fof('lemma-(sub:member)',axiom,
    ! [Xx,Xi,Xj] :
      ( ( sub(Xi,Xj)
        & member_succeeds(Xx,Xj) )
     => sub(cons(Xx,Xi),Xj) ) ).

fof('lemma-(incon:termination)',axiom,
    ! [Xi] :
      ( list_succeeds(Xi)
     => incon_terminates(Xi) ) ).

fof('lemma-(literal_list:list)',axiom,
    ! [Xi] :
      ( literal_list_succeeds(Xi)
     => list_succeeds(Xi) ) ).

fof('lemma-(interpretation:elimination)',axiom,
    ! [Xi] :
      ( interpretation_succeeds(Xi)
     => ( literal_list_succeeds(Xi)
        & ~ ? [Xx] :
              ( member_succeeds(p(Xx),Xi)
              & member_succeeds(neg(p(Xx)),Xi) ) ) ) ).

fof('lemma-(interpretation:introduction)',axiom,
    ! [Xi] :
      ( ( literal_list_succeeds(Xi)
        & ~ ? [Xx] :
              ( member_succeeds(p(Xx),Xi)
              & member_succeeds(neg(p(Xx)),Xi) ) )
     => interpretation_succeeds(Xi) ) ).

fof('lemma-(interpretation:pos:success)',axiom,
    ! [Xx,Xi] :
      ( ( interpretation_succeeds(Xi)
        & ~ member_succeeds(neg(p(Xx)),Xi) )
     => interpretation_succeeds(cons(p(Xx),Xi)) ) ).

fof('corollary-(interpretation:pos:failure)',axiom,
    ! [Xx,Xi] :
      ( ( interpretation_succeeds(Xi)
        & member_fails(neg(p(Xx)),Xi) )
     => interpretation_succeeds(cons(p(Xx),Xi)) ) ).

fof('lemma-(interpretation:(neg):success)',axiom,
    ! [Xx,Xi] :
      ( ( interpretation_succeeds(Xi)
        & ~ member_succeeds(p(Xx),Xi) )
     => interpretation_succeeds(cons(neg(p(Xx)),Xi)) ) ).

fof('corollary-(interpretation:(neg):failure)',axiom,
    ! [Xx,Xi] :
      ( ( interpretation_succeeds(Xi)
        & member_fails(p(Xx),Xi) )
     => interpretation_succeeds(cons(neg(p(Xx)),Xi)) ) ).

fof('lemma-(interpretation:nil)',axiom,
    interpretation_succeeds(nil) ).

fof('lemma-(truefalse:interpretation:literal_list:sub)',axiom,
    ( ! [Xa,Xi,Xj] :
        ( true_succeeds(Xa,Xi,Xj)
       => ( ( interpretation_succeeds(Xi)
           => interpretation_succeeds(Xj) )
          & ( literal_list_succeeds(Xi)
           => literal_list_succeeds(Xj) )
          & sub(Xi,Xj) ) )
    & ! [Xa,Xi,Xj] :
        ( false_succeeds(Xa,Xi,Xj)
       => ( ( interpretation_succeeds(Xi)
           => interpretation_succeeds(Xj) )
          & ( literal_list_succeeds(Xi)
           => literal_list_succeeds(Xj) )
          & sub(Xi,Xj) ) ) ) ).

fof('corollary-(true:interpretation)',axiom,
    ! [Xa,Xi,Xj] :
      ( ( true_succeeds(Xa,Xi,Xj)
        & interpretation_succeeds(Xi) )
     => interpretation_succeeds(Xj) ) ).

fof('corollary-(false:interpretation)',axiom,
    ! [Xa,Xi,Xj] :
      ( ( false_succeeds(Xa,Xi,Xj)
        & interpretation_succeeds(Xi) )
     => interpretation_succeeds(Xj) ) ).

fof('corollary-(true:literal_list)',axiom,
    ! [Xa,Xi,Xj] :
      ( ( true_succeeds(Xa,Xi,Xj)
        & literal_list_succeeds(Xi) )
     => literal_list_succeeds(Xj) ) ).

fof('corollary-(false:literal_list)',axiom,
    ! [Xa,Xi,Xj] :
      ( ( false_succeeds(Xa,Xi,Xj)
        & literal_list_succeeds(Xi) )
     => literal_list_succeeds(Xj) ) ).

fof('corollary-(true:sub)',axiom,
    ! [Xa,Xi,Xj] :
      ( true_succeeds(Xa,Xi,Xj)
     => sub(Xi,Xj) ) ).

fof('corollary-(false:sub)',axiom,
    ! [Xa,Xi,Xj] :
      ( false_succeeds(Xa,Xi,Xj)
     => sub(Xi,Xj) ) ).

fof('lemma-(true:false:gr)',axiom,
    ( ! [Xa,Xi,Xj] :
        ( true_succeeds(Xa,Xi,Xj)
       => ( ( gr(Xa)
            & gr(Xi) )
         => gr(Xj) ) )
    & ! [Xa,Xi,Xj] :
        ( false_succeeds(Xa,Xi,Xj)
       => ( ( gr(Xa)
            & gr(Xi) )
         => gr(Xj) ) ) ) ).

fof('corollary-(true:gr)',axiom,
    ! [Xa,Xi,Xj] :
      ( ( true_succeeds(Xa,Xi,Xj)
        & gr(Xa)
        & gr(Xi) )
     => gr(Xj) ) ).

fof('corollary-(false:gr)',axiom,
    ! [Xa,Xi,Xj] :
      ( ( false_succeeds(Xa,Xi,Xj)
        & gr(Xa)
        & gr(Xi) )
     => gr(Xj) ) ).

fof('lemma-(true:termination)',axiom,
    ! [Xa] :
      ( formula_succeeds(Xa)
     => ! [Xi,Xj] :
          ( ( gr(Xa)
            & literal_list_succeeds(Xi)
            & gr(Xi) )
         => ( true_terminates(Xa,Xi,Xj)
            & false_terminates(Xa,Xi,Xj) ) ) ) ).

fof('corollary-(satisfiable:termination)',axiom,
    ! [Xa] :
      ( ( formula_succeeds(Xa)
        & gr(Xa) )
     => satisfiable_terminates(Xa) ) ).

fof('theorem-(valid:termination)',axiom,
    ! [Xa] :
      ( ( formula_succeeds(Xa)
        & gr(Xa) )
     => valid_terminates(Xa) ) ).

fof('lemma-(eval:termination)',axiom,
    ! [Xa] :
      ( formula_succeeds(Xa)
     => ! [Xi,Xx] :
          ( list_succeeds(Xi)
         => eval_terminates(Xa,Xi,Xx) ) ) ).

fof('lemma-(eval:sub)',axiom,
    ! [Xa,Xi,Xx] :
      ( eval_succeeds(Xa,Xi,Xx)
     => ! [Xj] :
          ( sub(Xi,Xj)
         => eval_succeeds(Xa,Xj,Xx) ) ) ).

fof('corollary-(eval:sub)',axiom,
    ! [Xa,Xi,Xj,Xx] :
      ( ( eval_succeeds(Xa,Xi,Xx)
        & sub(Xi,Xj) )
     => eval_succeeds(Xa,Xj,Xx) ) ).

fof(induction,axiom,
    ( ! [Xa,Xi,Xj] :
        ( ( ? [Xx4,Xx5] :
              ( Xa = or(Xx4,Xx5)
              & true_succeeds(Xx5,Xi,Xj)
              & eval_succeeds(Xx5,Xj,'1') )
          | ? [Xx6,Xx7] :
              ( Xa = or(Xx6,Xx7)
              & true_succeeds(Xx6,Xi,Xj)
              & eval_succeeds(Xx6,Xj,'1') )
          | ? [Xx8,Xx9,Xx10] :
              ( Xa = and(Xx8,Xx9)
              & true_succeeds(Xx8,Xi,Xx10)
              & eval_succeeds(Xx8,Xx10,'1')
              & true_succeeds(Xx9,Xx10,Xj)
              & eval_succeeds(Xx9,Xj,'1') )
          | ? [Xx11] :
              ( Xa = neg(Xx11)
              & false_succeeds(Xx11,Xi,Xj) )
          | ? [Xx12] :
              ( Xa = p(Xx12)
              & Xj = cons(p(Xx12),Xi)
              & member_fails(neg(p(Xx12)),Xi) ) )
       => eval_succeeds(Xa,Xj,'1') )
   => ! [Xa,Xi,Xj] :
        ( true_succeeds(Xa,Xi,Xj)
       => eval_succeeds(Xa,Xj,'1') ) ) ).

fof(induction_001,axiom,
    ( ! [Xa,Xi,Xj] :
        ( ( ? [Xx4,Xx5,Xx6] :
              ( Xa = or(Xx4,Xx5)
              & false_succeeds(Xx4,Xi,Xx6)
              & eval_succeeds(Xx4,Xx6,'0')
              & false_succeeds(Xx5,Xx6,Xj)
              & eval_succeeds(Xx5,Xj,'0') )
          | ? [Xx7,Xx8] :
              ( Xa = and(Xx7,Xx8)
              & false_succeeds(Xx8,Xi,Xj)
              & eval_succeeds(Xx8,Xj,'0') )
          | ? [Xx9,Xx10] :
              ( Xa = and(Xx9,Xx10)
              & false_succeeds(Xx9,Xi,Xj)
              & eval_succeeds(Xx9,Xj,'0') )
          | ? [Xx11] :
              ( Xa = neg(Xx11)
              & true_succeeds(Xx11,Xi,Xj) )
          | ? [Xx12] :
              ( Xa = p(Xx12)
              & Xj = cons(neg(p(Xx12)),Xi)
              & member_fails(p(Xx12),Xi) ) )
       => eval_succeeds(Xa,Xj,'0') )
   => ! [Xa,Xi,Xj] :
        ( false_succeeds(Xa,Xi,Xj)
       => eval_succeeds(Xa,Xj,'0') ) ) ).

fof('lemma-(truefalse:eval)',conjecture,
    ( ! [Xa,Xi,Xj] :
        ( true_succeeds(Xa,Xi,Xj)
       => eval_succeeds(Xa,Xj,'1') )
    & ! [Xa,Xi,Xj] :
        ( false_succeeds(Xa,Xi,Xj)
       => eval_succeeds(Xa,Xj,'0') ) ) ).

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