TSTP Solution File: HWV003-2 by Drodi---3.5.1

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Drodi---3.5.1
% Problem  : HWV003-2 : TPTP v8.1.2. Released v2.7.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : drodi -learnfrom(drodi.lrn) -timeout(%d) %s

% Computer : n029.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 May 31 12:12:53 EDT 2023

% Result   : Unsatisfiable 23.24s 3.86s
% Output   : CNFRefutation 23.89s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   49
%            Number of leaves      :   35
% Syntax   : Number of formulae    :  433 ( 424 unt;   0 def)
%            Number of atoms       :  442 ( 429 equ)
%            Maximal formula atoms :    2 (   1 avg)
%            Number of connectives :   17 (   8   ~;   7   |;   0   &)
%                                         (   2 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    4 (   2 avg)
%            Maximal term depth    :    7 (   2 avg)
%            Number of predicates  :    4 (   2 usr;   3 prp; 0-2 aty)
%            Number of functors    :   20 (  20 usr;  16 con; 0-2 aty)
%            Number of variables   :  289 (; 289   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f1,axiom,
    ! [X,Y] : or(X,Y) = or(Y,X),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f2,axiom,
    ! [X,Y] : and(X,Y) = and(Y,X),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f3,axiom,
    ! [X,Y,Z] : or(or(X,Y),Z) = or(X,or(Y,Z)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f4,axiom,
    ! [X,Y,Z] : and(and(X,Y),Z) = and(X,and(Y,Z)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f5,axiom,
    ! [X] : or(X,ll0) = X,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f6,axiom,
    ! [X] : and(X,ll1) = X,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f7,axiom,
    ! [X,Y,Z] : and(X,or(Y,Z)) = or(and(X,Y),and(X,Z)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f8,axiom,
    ! [X,Y,Z] : or(X,and(Y,Z)) = and(or(X,Y),or(X,Z)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f9,axiom,
    ! [X] : or(X,not(X)) = ll1,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f10,axiom,
    ! [X] : and(X,not(X)) = ll0,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f13,axiom,
    ! [X] : not(not(X)) = X,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f14,axiom,
    not(ll0) = ll1,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f15,axiom,
    not(ll1) = ll0,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f17,axiom,
    ! [X] : and(X,ll0) = ll0,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f18,axiom,
    ! [X,Y] : or(X,and(X,Y)) = X,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f19,axiom,
    ! [X,Y] : and(X,or(X,Y)) = X,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f20,axiom,
    ! [X,Y] : not(or(X,Y)) = and(not(X),not(Y)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f21,axiom,
    ! [X,Y] : not(and(X,Y)) = or(not(X),not(Y)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f22,axiom,
    ! [X,Y] : or(and(not(X),Y),and(X,not(Y))) = xor(X,Y),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f23,axiom,
    ! [X,Y] : xor(X,Y) = xor(Y,X),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f24,axiom,
    ! [X,Y,Z] : xor(X,xor(Y,Z)) = xor(xor(X,Y),Z),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f25,negated_conjecture,
    xor(xor(a,b),cin) = sum_def,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f26,negated_conjecture,
    or(and(cin,or(a,b)),and(not(cin),and(a,b))) = carry_def,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f27,negated_conjecture,
    not(and(a,b)) = t1,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f28,negated_conjecture,
    not(and(a,t1)) = t2,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f29,negated_conjecture,
    not(and(b,t1)) = t3,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f30,negated_conjecture,
    not(and(t2,t3)) = t4,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f31,negated_conjecture,
    not(and(t4,cin)) = t5,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f32,negated_conjecture,
    not(and(t4,t5)) = t6,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f33,negated_conjecture,
    not(and(t5,cin)) = t7,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f34,negated_conjecture,
    not(and(t6,t7)) = sum,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f35,negated_conjecture,
    not(and(t1,t5)) = carry,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f36,negated_conjecture,
    ( sum != sum_def
    | carry != carry_def ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f37,plain,
    ! [X0,X1] : or(X0,X1) = or(X1,X0),
    inference(cnf_transformation,[status(esa)],[f1]) ).

fof(f38,plain,
    ! [X0,X1] : and(X0,X1) = and(X1,X0),
    inference(cnf_transformation,[status(esa)],[f2]) ).

fof(f39,plain,
    ! [X0,X1,X2] : or(or(X0,X1),X2) = or(X0,or(X1,X2)),
    inference(cnf_transformation,[status(esa)],[f3]) ).

fof(f40,plain,
    ! [X0,X1,X2] : and(and(X0,X1),X2) = and(X0,and(X1,X2)),
    inference(cnf_transformation,[status(esa)],[f4]) ).

fof(f41,plain,
    ! [X0] : or(X0,ll0) = X0,
    inference(cnf_transformation,[status(esa)],[f5]) ).

fof(f42,plain,
    ! [X0] : and(X0,ll1) = X0,
    inference(cnf_transformation,[status(esa)],[f6]) ).

fof(f43,plain,
    ! [X0,X1,X2] : and(X0,or(X1,X2)) = or(and(X0,X1),and(X0,X2)),
    inference(cnf_transformation,[status(esa)],[f7]) ).

fof(f44,plain,
    ! [X0,X1,X2] : or(X0,and(X1,X2)) = and(or(X0,X1),or(X0,X2)),
    inference(cnf_transformation,[status(esa)],[f8]) ).

fof(f45,plain,
    ! [X0] : or(X0,not(X0)) = ll1,
    inference(cnf_transformation,[status(esa)],[f9]) ).

fof(f46,plain,
    ! [X0] : and(X0,not(X0)) = ll0,
    inference(cnf_transformation,[status(esa)],[f10]) ).

fof(f49,plain,
    ! [X0] : not(not(X0)) = X0,
    inference(cnf_transformation,[status(esa)],[f13]) ).

fof(f50,plain,
    not(ll0) = ll1,
    inference(cnf_transformation,[status(esa)],[f14]) ).

fof(f51,plain,
    not(ll1) = ll0,
    inference(cnf_transformation,[status(esa)],[f15]) ).

fof(f53,plain,
    ! [X0] : and(X0,ll0) = ll0,
    inference(cnf_transformation,[status(esa)],[f17]) ).

fof(f54,plain,
    ! [X0,X1] : or(X0,and(X0,X1)) = X0,
    inference(cnf_transformation,[status(esa)],[f18]) ).

fof(f55,plain,
    ! [X0,X1] : and(X0,or(X0,X1)) = X0,
    inference(cnf_transformation,[status(esa)],[f19]) ).

fof(f56,plain,
    ! [X0,X1] : not(or(X0,X1)) = and(not(X0),not(X1)),
    inference(cnf_transformation,[status(esa)],[f20]) ).

fof(f57,plain,
    ! [X0,X1] : not(and(X0,X1)) = or(not(X0),not(X1)),
    inference(cnf_transformation,[status(esa)],[f21]) ).

fof(f58,plain,
    ! [X0,X1] : or(and(not(X0),X1),and(X0,not(X1))) = xor(X0,X1),
    inference(cnf_transformation,[status(esa)],[f22]) ).

fof(f59,plain,
    ! [X0,X1] : xor(X0,X1) = xor(X1,X0),
    inference(cnf_transformation,[status(esa)],[f23]) ).

fof(f60,plain,
    ! [X0,X1,X2] : xor(X0,xor(X1,X2)) = xor(xor(X0,X1),X2),
    inference(cnf_transformation,[status(esa)],[f24]) ).

fof(f61,plain,
    xor(xor(a,b),cin) = sum_def,
    inference(cnf_transformation,[status(esa)],[f25]) ).

fof(f62,plain,
    or(and(cin,or(a,b)),and(not(cin),and(a,b))) = carry_def,
    inference(cnf_transformation,[status(esa)],[f26]) ).

fof(f63,plain,
    not(and(a,b)) = t1,
    inference(cnf_transformation,[status(esa)],[f27]) ).

fof(f64,plain,
    not(and(a,t1)) = t2,
    inference(cnf_transformation,[status(esa)],[f28]) ).

fof(f65,plain,
    not(and(b,t1)) = t3,
    inference(cnf_transformation,[status(esa)],[f29]) ).

fof(f66,plain,
    not(and(t2,t3)) = t4,
    inference(cnf_transformation,[status(esa)],[f30]) ).

fof(f67,plain,
    not(and(t4,cin)) = t5,
    inference(cnf_transformation,[status(esa)],[f31]) ).

fof(f68,plain,
    not(and(t4,t5)) = t6,
    inference(cnf_transformation,[status(esa)],[f32]) ).

fof(f69,plain,
    not(and(t5,cin)) = t7,
    inference(cnf_transformation,[status(esa)],[f33]) ).

fof(f70,plain,
    not(and(t6,t7)) = sum,
    inference(cnf_transformation,[status(esa)],[f34]) ).

fof(f71,plain,
    not(and(t1,t5)) = carry,
    inference(cnf_transformation,[status(esa)],[f35]) ).

fof(f72,plain,
    ( sum != sum_def
    | carry != carry_def ),
    inference(cnf_transformation,[status(esa)],[f36]) ).

fof(f73,plain,
    ( spl0_0
  <=> sum = sum_def ),
    introduced(split_symbol_definition) ).

fof(f75,plain,
    ( sum != sum_def
    | spl0_0 ),
    inference(component_clause,[status(thm)],[f73]) ).

fof(f76,plain,
    ( spl0_1
  <=> carry = carry_def ),
    introduced(split_symbol_definition) ).

fof(f78,plain,
    ( carry != carry_def
    | spl0_1 ),
    inference(component_clause,[status(thm)],[f76]) ).

fof(f79,plain,
    ( ~ spl0_0
    | ~ spl0_1 ),
    inference(split_clause,[status(thm)],[f72,f73,f76]) ).

fof(f80,plain,
    ! [X0,X1] : or(and(X0,not(X1)),and(not(X0),X1)) = xor(X0,X1),
    inference(forward_demodulation,[status(thm)],[f37,f58]) ).

fof(f81,plain,
    xor(a,xor(b,cin)) = sum_def,
    inference(forward_demodulation,[status(thm)],[f60,f61]) ).

fof(f82,plain,
    not(and(cin,t4)) = t5,
    inference(forward_demodulation,[status(thm)],[f38,f67]) ).

fof(f83,plain,
    not(and(cin,t5)) = t7,
    inference(forward_demodulation,[status(thm)],[f38,f69]) ).

fof(f84,plain,
    ! [X0,X1] : or(X0,and(X1,X0)) = X0,
    inference(paramodulation,[status(thm)],[f38,f54]) ).

fof(f88,plain,
    ! [X0,X1] : and(X0,or(X1,X0)) = X0,
    inference(paramodulation,[status(thm)],[f37,f55]) ).

fof(f98,plain,
    ! [X0,X1] : and(and(X0,X1),X1) = and(X0,X1),
    inference(paramodulation,[status(thm)],[f84,f88]) ).

fof(f99,plain,
    ! [X0,X1] : and(X0,and(X1,X0)) = and(X1,X0),
    inference(forward_demodulation,[status(thm)],[f38,f98]) ).

fof(f100,plain,
    ! [X0,X1] : and(and(X0,X1),X0) = and(X0,X1),
    inference(paramodulation,[status(thm)],[f54,f88]) ).

fof(f101,plain,
    ! [X0,X1] : and(X0,and(X0,X1)) = and(X0,X1),
    inference(forward_demodulation,[status(thm)],[f38,f100]) ).

fof(f105,plain,
    ! [X0,X1] : or(or(X0,X1),X1) = or(X0,X1),
    inference(paramodulation,[status(thm)],[f88,f84]) ).

fof(f106,plain,
    ! [X0,X1] : or(X0,or(X1,X0)) = or(X1,X0),
    inference(forward_demodulation,[status(thm)],[f37,f105]) ).

fof(f109,plain,
    ! [X0,X1,X2] : or(X0,X1) = or(X0,or(X1,and(or(X0,X1),X2))),
    inference(paramodulation,[status(thm)],[f54,f39]) ).

fof(f118,plain,
    ! [X0,X1,X2] : or(X0,X1) = or(X0,or(and(X0,X2),X1)),
    inference(paramodulation,[status(thm)],[f54,f39]) ).

fof(f159,plain,
    ! [X0] : or(ll0,X0) = X0,
    inference(paramodulation,[status(thm)],[f37,f41]) ).

fof(f163,plain,
    ! [X0] : and(ll0,X0) = ll0,
    inference(paramodulation,[status(thm)],[f41,f88]) ).

fof(f168,plain,
    ! [X0] : and(ll1,X0) = X0,
    inference(paramodulation,[status(thm)],[f38,f42]) ).

fof(f268,plain,
    and(and(cin,t4),t5) = ll0,
    inference(paramodulation,[status(thm)],[f82,f46]) ).

fof(f269,plain,
    and(cin,and(t4,t5)) = ll0,
    inference(forward_demodulation,[status(thm)],[f40,f268]) ).

fof(f276,plain,
    and(and(a,b),t1) = ll0,
    inference(paramodulation,[status(thm)],[f63,f46]) ).

fof(f277,plain,
    and(a,and(b,t1)) = ll0,
    inference(forward_demodulation,[status(thm)],[f40,f276]) ).

fof(f280,plain,
    ! [X0,X1] : and(ll0,X0) = and(X1,and(not(X1),X0)),
    inference(paramodulation,[status(thm)],[f46,f40]) ).

fof(f281,plain,
    ! [X0,X1] : ll0 = and(X0,and(not(X0),X1)),
    inference(forward_demodulation,[status(thm)],[f163,f280]) ).

fof(f311,plain,
    ! [X0,X1] : and(X0,or(not(X0),X1)) = or(ll0,and(X0,X1)),
    inference(paramodulation,[status(thm)],[f46,f43]) ).

fof(f312,plain,
    ! [X0,X1] : and(X0,or(not(X0),X1)) = and(X0,X1),
    inference(forward_demodulation,[status(thm)],[f159,f311]) ).

fof(f337,plain,
    ! [X0,X1] : and(X0,or(X1,not(X0))) = or(and(X0,X1),ll0),
    inference(paramodulation,[status(thm)],[f46,f43]) ).

fof(f338,plain,
    ! [X0,X1] : and(X0,or(X1,not(X0))) = and(X0,X1),
    inference(forward_demodulation,[status(thm)],[f41,f337]) ).

fof(f351,plain,
    ! [X0,X1,X2] : and(X0,or(X1,X2)) = or(and(X0,X1),and(X2,X0)),
    inference(paramodulation,[status(thm)],[f38,f43]) ).

fof(f368,plain,
    ! [X0,X1,X2] : or(X0,and(X1,X2)) = and(or(X0,X2),or(X0,X1)),
    inference(paramodulation,[status(thm)],[f38,f44]) ).

fof(f369,plain,
    ! [X0,X1,X2] : or(X0,and(X1,X2)) = or(X0,and(X2,X1)),
    inference(forward_demodulation,[status(thm)],[f44,f368]) ).

fof(f386,plain,
    ! [X0,X1] : or(X0,and(not(X0),X1)) = and(ll1,or(X0,X1)),
    inference(paramodulation,[status(thm)],[f45,f44]) ).

fof(f387,plain,
    ! [X0,X1] : or(X0,and(not(X0),X1)) = or(X0,X1),
    inference(forward_demodulation,[status(thm)],[f168,f386]) ).

fof(f399,plain,
    ! [X0,X1,X2] : or(X0,and(X1,X2)) = and(or(X1,X0),or(X0,X2)),
    inference(paramodulation,[status(thm)],[f37,f44]) ).

fof(f414,plain,
    ! [X0,X1] : or(X0,and(X1,not(X0))) = and(or(X0,X1),ll1),
    inference(paramodulation,[status(thm)],[f45,f44]) ).

fof(f415,plain,
    ! [X0,X1] : or(X0,and(X1,not(X0))) = or(X0,X1),
    inference(forward_demodulation,[status(thm)],[f42,f414]) ).

fof(f452,plain,
    not(carry) = and(t1,t5),
    inference(paramodulation,[status(thm)],[f71,f49]) ).

fof(f453,plain,
    not(sum) = and(t6,t7),
    inference(paramodulation,[status(thm)],[f70,f49]) ).

fof(f454,plain,
    not(t6) = and(t4,t5),
    inference(paramodulation,[status(thm)],[f68,f49]) ).

fof(f455,plain,
    not(t7) = and(cin,t5),
    inference(paramodulation,[status(thm)],[f83,f49]) ).

fof(f456,plain,
    not(t5) = and(cin,t4),
    inference(paramodulation,[status(thm)],[f82,f49]) ).

fof(f457,plain,
    not(t4) = and(t2,t3),
    inference(paramodulation,[status(thm)],[f66,f49]) ).

fof(f458,plain,
    not(t3) = and(b,t1),
    inference(paramodulation,[status(thm)],[f65,f49]) ).

fof(f459,plain,
    not(t2) = and(a,t1),
    inference(paramodulation,[status(thm)],[f64,f49]) ).

fof(f460,plain,
    not(t1) = and(a,b),
    inference(paramodulation,[status(thm)],[f63,f49]) ).

fof(f470,plain,
    and(cin,not(t6)) = ll0,
    inference(backward_demodulation,[status(thm)],[f454,f269]) ).

fof(f479,plain,
    and(a,not(t3)) = ll0,
    inference(backward_demodulation,[status(thm)],[f458,f277]) ).

fof(f485,plain,
    or(and(cin,or(a,b)),and(not(cin),not(t1))) = carry_def,
    inference(backward_demodulation,[status(thm)],[f460,f62]) ).

fof(f486,plain,
    or(and(cin,or(a,b)),not(or(cin,t1))) = carry_def,
    inference(forward_demodulation,[status(thm)],[f56,f485]) ).

fof(f487,plain,
    or(not(or(cin,t1)),and(cin,or(a,b))) = carry_def,
    inference(forward_demodulation,[status(thm)],[f37,f486]) ).

fof(f488,plain,
    ! [X0] : and(t1,or(X0,t5)) = or(and(t1,X0),not(carry)),
    inference(paramodulation,[status(thm)],[f452,f43]) ).

fof(f489,plain,
    ! [X0] : and(t1,or(X0,t5)) = or(not(carry),and(t1,X0)),
    inference(forward_demodulation,[status(thm)],[f37,f488]) ).

fof(f492,plain,
    ! [X0] : and(not(carry),X0) = and(t1,and(t5,X0)),
    inference(paramodulation,[status(thm)],[f452,f40]) ).

fof(f494,plain,
    or(t1,not(carry)) = t1,
    inference(paramodulation,[status(thm)],[f452,f54]) ).

fof(f510,plain,
    ! [X0] : and(not(t6),X0) = and(t4,and(t5,X0)),
    inference(paramodulation,[status(thm)],[f454,f40]) ).

fof(f520,plain,
    or(t5,not(t7)) = t5,
    inference(paramodulation,[status(thm)],[f455,f84]) ).

fof(f534,plain,
    ! [X0] : and(cin,or(X0,t4)) = or(and(cin,X0),not(t5)),
    inference(paramodulation,[status(thm)],[f456,f43]) ).

fof(f535,plain,
    ! [X0] : and(cin,or(X0,t4)) = or(not(t5),and(cin,X0)),
    inference(forward_demodulation,[status(thm)],[f37,f534]) ).

fof(f539,plain,
    or(t4,not(t5)) = t4,
    inference(paramodulation,[status(thm)],[f456,f84]) ).

fof(f540,plain,
    or(cin,not(t5)) = cin,
    inference(paramodulation,[status(thm)],[f456,f54]) ).

fof(f545,plain,
    ! [X0] : and(not(t4),X0) = and(t2,and(t3,X0)),
    inference(paramodulation,[status(thm)],[f457,f40]) ).

fof(f547,plain,
    or(t2,not(t4)) = t2,
    inference(paramodulation,[status(thm)],[f457,f54]) ).

fof(f554,plain,
    ! [X0] : and(not(t3),X0) = and(b,and(t1,X0)),
    inference(paramodulation,[status(thm)],[f458,f40]) ).

fof(f556,plain,
    or(b,not(t3)) = b,
    inference(paramodulation,[status(thm)],[f458,f54]) ).

fof(f563,plain,
    ! [X0] : and(not(t2),X0) = and(a,and(t1,X0)),
    inference(paramodulation,[status(thm)],[f459,f40]) ).

fof(f565,plain,
    or(a,not(t2)) = a,
    inference(paramodulation,[status(thm)],[f459,f54]) ).

fof(f573,plain,
    or(b,not(t1)) = b,
    inference(paramodulation,[status(thm)],[f460,f84]) ).

fof(f574,plain,
    or(a,not(t1)) = a,
    inference(paramodulation,[status(thm)],[f460,f54]) ).

fof(f590,plain,
    and(not(carry),t1) = not(carry),
    inference(paramodulation,[status(thm)],[f494,f88]) ).

fof(f591,plain,
    and(t1,not(carry)) = not(carry),
    inference(forward_demodulation,[status(thm)],[f38,f590]) ).

fof(f651,plain,
    and(not(t7),t5) = not(t7),
    inference(paramodulation,[status(thm)],[f520,f88]) ).

fof(f652,plain,
    and(t5,not(t7)) = not(t7),
    inference(forward_demodulation,[status(thm)],[f38,f651]) ).

fof(f669,plain,
    and(not(t5),t4) = not(t5),
    inference(paramodulation,[status(thm)],[f539,f88]) ).

fof(f670,plain,
    and(t4,not(t5)) = not(t5),
    inference(forward_demodulation,[status(thm)],[f38,f669]) ).

fof(f678,plain,
    and(not(t5),cin) = not(t5),
    inference(paramodulation,[status(thm)],[f540,f88]) ).

fof(f679,plain,
    and(cin,not(t5)) = not(t5),
    inference(forward_demodulation,[status(thm)],[f38,f678]) ).

fof(f696,plain,
    and(not(t4),t2) = not(t4),
    inference(paramodulation,[status(thm)],[f547,f88]) ).

fof(f697,plain,
    and(t2,not(t4)) = not(t4),
    inference(forward_demodulation,[status(thm)],[f38,f696]) ).

fof(f714,plain,
    and(not(t3),b) = not(t3),
    inference(paramodulation,[status(thm)],[f556,f88]) ).

fof(f715,plain,
    and(b,not(t3)) = not(t3),
    inference(forward_demodulation,[status(thm)],[f38,f714]) ).

fof(f732,plain,
    and(not(t2),a) = not(t2),
    inference(paramodulation,[status(thm)],[f565,f88]) ).

fof(f733,plain,
    and(a,not(t2)) = not(t2),
    inference(forward_demodulation,[status(thm)],[f38,f732]) ).

fof(f741,plain,
    and(not(t1),b) = not(t1),
    inference(paramodulation,[status(thm)],[f573,f88]) ).

fof(f742,plain,
    and(b,not(t1)) = not(t1),
    inference(forward_demodulation,[status(thm)],[f38,f741]) ).

fof(f750,plain,
    and(not(t1),a) = not(t1),
    inference(paramodulation,[status(thm)],[f574,f88]) ).

fof(f751,plain,
    and(a,not(t1)) = not(t1),
    inference(forward_demodulation,[status(thm)],[f38,f750]) ).

fof(f1082,plain,
    ! [X0,X1,X2] : and(X0,or(X1,and(X2,X0))) = or(and(X0,X1),and(X2,X0)),
    inference(paramodulation,[status(thm)],[f99,f43]) ).

fof(f1083,plain,
    ! [X0,X1,X2] : and(X0,or(X1,and(X2,X0))) = and(X0,or(X1,X2)),
    inference(forward_demodulation,[status(thm)],[f351,f1082]) ).

fof(f1238,plain,
    ! [X0,X1,X2] : or(X0,and(or(X1,X0),X2)) = and(or(X1,X0),or(X0,X2)),
    inference(paramodulation,[status(thm)],[f106,f44]) ).

fof(f1239,plain,
    ! [X0,X1,X2] : or(X0,and(or(X1,X0),X2)) = or(X0,and(X1,X2)),
    inference(forward_demodulation,[status(thm)],[f399,f1238]) ).

fof(f1248,plain,
    ! [X0,X1,X2] : or(X0,X1) = or(X0,or(X1,and(X0,X2))),
    inference(backward_demodulation,[status(thm)],[f1239,f109]) ).

fof(f1603,plain,
    ! [X0,X1] : not(or(X0,X1)) = and(not(X1),not(X0)),
    inference(paramodulation,[status(thm)],[f38,f56]) ).

fof(f1604,plain,
    ! [X0,X1] : not(or(X0,X1)) = not(or(X1,X0)),
    inference(forward_demodulation,[status(thm)],[f56,f1603]) ).

fof(f1608,plain,
    ! [X0,X1] : not(or(not(X0),X1)) = and(X0,not(X1)),
    inference(paramodulation,[status(thm)],[f49,f56]) ).

fof(f1645,plain,
    ! [X0,X1] : not(and(X0,X1)) = or(not(X1),not(X0)),
    inference(paramodulation,[status(thm)],[f37,f57]) ).

fof(f1646,plain,
    ! [X0,X1] : not(and(X0,X1)) = not(and(X1,X0)),
    inference(forward_demodulation,[status(thm)],[f57,f1645]) ).

fof(f1650,plain,
    ! [X0,X1] : not(and(not(X0),X1)) = or(X0,not(X1)),
    inference(paramodulation,[status(thm)],[f49,f57]) ).

fof(f1656,plain,
    ! [X0,X1] : not(and(X0,not(X1))) = or(not(X0),X1),
    inference(paramodulation,[status(thm)],[f49,f57]) ).

fof(f2059,plain,
    ! [X0,X1] : or(X0,not(or(X0,X1))) = or(X0,not(X1)),
    inference(paramodulation,[status(thm)],[f56,f387]) ).

fof(f2167,plain,
    or(t3,ll0) = or(t3,a),
    inference(paramodulation,[status(thm)],[f479,f415]) ).

fof(f2168,plain,
    t3 = or(t3,a),
    inference(forward_demodulation,[status(thm)],[f41,f2167]) ).

fof(f2169,plain,
    t3 = or(a,t3),
    inference(forward_demodulation,[status(thm)],[f37,f2168]) ).

fof(f2176,plain,
    or(t4,not(t4)) = or(t4,t2),
    inference(paramodulation,[status(thm)],[f697,f415]) ).

fof(f2177,plain,
    ll1 = or(t4,t2),
    inference(forward_demodulation,[status(thm)],[f45,f2176]) ).

fof(f2178,plain,
    ll1 = or(t2,t4),
    inference(forward_demodulation,[status(thm)],[f37,f2177]) ).

fof(f2185,plain,
    or(t6,ll0) = or(t6,cin),
    inference(paramodulation,[status(thm)],[f470,f415]) ).

fof(f2186,plain,
    t6 = or(t6,cin),
    inference(forward_demodulation,[status(thm)],[f41,f2185]) ).

fof(f2187,plain,
    t6 = or(cin,t6),
    inference(forward_demodulation,[status(thm)],[f37,f2186]) ).

fof(f2188,plain,
    or(t5,not(t5)) = or(t5,t4),
    inference(paramodulation,[status(thm)],[f670,f415]) ).

fof(f2189,plain,
    ll1 = or(t5,t4),
    inference(forward_demodulation,[status(thm)],[f45,f2188]) ).

fof(f2190,plain,
    ll1 = or(t4,t5),
    inference(forward_demodulation,[status(thm)],[f37,f2189]) ).

fof(f2203,plain,
    or(carry,not(carry)) = or(carry,t1),
    inference(paramodulation,[status(thm)],[f591,f415]) ).

fof(f2204,plain,
    ll1 = or(carry,t1),
    inference(forward_demodulation,[status(thm)],[f45,f2203]) ).

fof(f2205,plain,
    ll1 = or(t1,carry),
    inference(forward_demodulation,[status(thm)],[f37,f2204]) ).

fof(f2221,plain,
    ! [X0,X1] : or(not(X0),and(X1,X0)) = or(not(X0),X1),
    inference(paramodulation,[status(thm)],[f49,f415]) ).

fof(f2267,plain,
    ! [X0,X1] : or(not(or(X0,X1)),and(not(not(X0)),X1)) = xor(not(X0),X1),
    inference(paramodulation,[status(thm)],[f56,f80]) ).

fof(f2268,plain,
    ! [X0,X1] : or(not(or(X0,X1)),and(X0,X1)) = xor(not(X0),X1),
    inference(forward_demodulation,[status(thm)],[f49,f2267]) ).

fof(f2269,plain,
    ! [X0,X1] : or(and(X0,X1),not(or(X0,X1))) = xor(not(X0),X1),
    inference(forward_demodulation,[status(thm)],[f37,f2268]) ).

fof(f2279,plain,
    or(not(t7),and(not(t5),t7)) = xor(t5,t7),
    inference(paramodulation,[status(thm)],[f652,f80]) ).

fof(f2280,plain,
    or(not(t7),not(t5)) = xor(t5,t7),
    inference(forward_demodulation,[status(thm)],[f2221,f2279]) ).

fof(f2281,plain,
    not(and(t7,t5)) = xor(t5,t7),
    inference(forward_demodulation,[status(thm)],[f57,f2280]) ).

fof(f2282,plain,
    not(and(t5,t7)) = xor(t5,t7),
    inference(forward_demodulation,[status(thm)],[f1646,f2281]) ).

fof(f2291,plain,
    or(not(t1),and(not(a),t1)) = xor(a,t1),
    inference(paramodulation,[status(thm)],[f751,f80]) ).

fof(f2292,plain,
    or(not(t1),not(a)) = xor(a,t1),
    inference(forward_demodulation,[status(thm)],[f2221,f2291]) ).

fof(f2293,plain,
    not(and(t1,a)) = xor(a,t1),
    inference(forward_demodulation,[status(thm)],[f57,f2292]) ).

fof(f2294,plain,
    not(and(a,t1)) = xor(a,t1),
    inference(forward_demodulation,[status(thm)],[f1646,f2293]) ).

fof(f2295,plain,
    not(not(t2)) = xor(a,t1),
    inference(forward_demodulation,[status(thm)],[f459,f2294]) ).

fof(f2296,plain,
    t2 = xor(a,t1),
    inference(forward_demodulation,[status(thm)],[f49,f2295]) ).

fof(f2297,plain,
    or(not(t2),and(not(a),t2)) = xor(a,t2),
    inference(paramodulation,[status(thm)],[f733,f80]) ).

fof(f2298,plain,
    or(not(t2),not(a)) = xor(a,t2),
    inference(forward_demodulation,[status(thm)],[f2221,f2297]) ).

fof(f2299,plain,
    not(and(t2,a)) = xor(a,t2),
    inference(forward_demodulation,[status(thm)],[f57,f2298]) ).

fof(f2300,plain,
    not(and(a,t2)) = xor(a,t2),
    inference(forward_demodulation,[status(thm)],[f1646,f2299]) ).

fof(f2304,plain,
    or(not(t1),and(not(b),t1)) = xor(b,t1),
    inference(paramodulation,[status(thm)],[f742,f80]) ).

fof(f2305,plain,
    or(not(t1),not(b)) = xor(b,t1),
    inference(forward_demodulation,[status(thm)],[f2221,f2304]) ).

fof(f2306,plain,
    not(and(t1,b)) = xor(b,t1),
    inference(forward_demodulation,[status(thm)],[f57,f2305]) ).

fof(f2307,plain,
    not(and(b,t1)) = xor(b,t1),
    inference(forward_demodulation,[status(thm)],[f1646,f2306]) ).

fof(f2308,plain,
    not(not(t3)) = xor(b,t1),
    inference(forward_demodulation,[status(thm)],[f458,f2307]) ).

fof(f2309,plain,
    t3 = xor(b,t1),
    inference(forward_demodulation,[status(thm)],[f49,f2308]) ).

fof(f2310,plain,
    or(not(t3),and(not(b),t3)) = xor(b,t3),
    inference(paramodulation,[status(thm)],[f715,f80]) ).

fof(f2311,plain,
    or(not(t3),not(b)) = xor(b,t3),
    inference(forward_demodulation,[status(thm)],[f2221,f2310]) ).

fof(f2312,plain,
    not(and(t3,b)) = xor(b,t3),
    inference(forward_demodulation,[status(thm)],[f57,f2311]) ).

fof(f2313,plain,
    not(and(b,t3)) = xor(b,t3),
    inference(forward_demodulation,[status(thm)],[f1646,f2312]) ).

fof(f2318,plain,
    or(not(t5),and(not(cin),t5)) = xor(cin,t5),
    inference(paramodulation,[status(thm)],[f679,f80]) ).

fof(f2319,plain,
    or(not(t5),not(cin)) = xor(cin,t5),
    inference(forward_demodulation,[status(thm)],[f2221,f2318]) ).

fof(f2320,plain,
    not(and(t5,cin)) = xor(cin,t5),
    inference(forward_demodulation,[status(thm)],[f57,f2319]) ).

fof(f2321,plain,
    not(and(cin,t5)) = xor(cin,t5),
    inference(forward_demodulation,[status(thm)],[f1646,f2320]) ).

fof(f2322,plain,
    not(not(t7)) = xor(cin,t5),
    inference(forward_demodulation,[status(thm)],[f455,f2321]) ).

fof(f2323,plain,
    t7 = xor(cin,t5),
    inference(forward_demodulation,[status(thm)],[f49,f2322]) ).

fof(f2357,plain,
    ! [X0] : or(ll0,and(not(ll0),X0)) = xor(ll0,X0),
    inference(paramodulation,[status(thm)],[f163,f80]) ).

fof(f2358,plain,
    ! [X0] : and(not(ll0),X0) = xor(ll0,X0),
    inference(forward_demodulation,[status(thm)],[f159,f2357]) ).

fof(f2359,plain,
    ! [X0] : and(ll1,X0) = xor(ll0,X0),
    inference(forward_demodulation,[status(thm)],[f50,f2358]) ).

fof(f2360,plain,
    ! [X0] : X0 = xor(ll0,X0),
    inference(forward_demodulation,[status(thm)],[f168,f2359]) ).

fof(f2361,plain,
    ! [X0] : or(not(X0),and(not(ll1),X0)) = xor(ll1,X0),
    inference(paramodulation,[status(thm)],[f168,f80]) ).

fof(f2362,plain,
    ! [X0] : or(not(X0),not(ll1)) = xor(ll1,X0),
    inference(forward_demodulation,[status(thm)],[f2221,f2361]) ).

fof(f2363,plain,
    ! [X0] : not(and(X0,ll1)) = xor(ll1,X0),
    inference(forward_demodulation,[status(thm)],[f57,f2362]) ).

fof(f2364,plain,
    ! [X0] : not(X0) = xor(ll1,X0),
    inference(forward_demodulation,[status(thm)],[f42,f2363]) ).

fof(f2366,plain,
    ! [X0] : or(ll0,and(not(X0),X0)) = xor(X0,X0),
    inference(paramodulation,[status(thm)],[f46,f80]) ).

fof(f2367,plain,
    ! [X0] : and(not(X0),X0) = xor(X0,X0),
    inference(forward_demodulation,[status(thm)],[f159,f2366]) ).

fof(f2368,plain,
    ! [X0] : and(X0,not(X0)) = xor(X0,X0),
    inference(forward_demodulation,[status(thm)],[f38,f2367]) ).

fof(f2369,plain,
    ! [X0] : ll0 = xor(X0,X0),
    inference(forward_demodulation,[status(thm)],[f46,f2368]) ).

fof(f2381,plain,
    ! [X0,X1] : or(and(X0,X1),and(not(X0),not(X1))) = xor(X0,not(X1)),
    inference(paramodulation,[status(thm)],[f49,f80]) ).

fof(f2382,plain,
    ! [X0,X1] : or(and(X0,X1),not(or(X0,X1))) = xor(X0,not(X1)),
    inference(forward_demodulation,[status(thm)],[f56,f2381]) ).

fof(f2383,plain,
    ! [X0,X1] : xor(not(X0),X1) = xor(X0,not(X1)),
    inference(forward_demodulation,[status(thm)],[f2269,f2382]) ).

fof(f2384,plain,
    ! [X0] : or(and(X0,ll0),and(not(X0),ll1)) = xor(X0,ll1),
    inference(paramodulation,[status(thm)],[f51,f80]) ).

fof(f2385,plain,
    ! [X0] : or(and(X0,ll0),and(ll1,not(X0))) = xor(X0,ll1),
    inference(forward_demodulation,[status(thm)],[f369,f2384]) ).

fof(f2386,plain,
    ! [X0] : or(ll0,and(ll1,not(X0))) = xor(X0,ll1),
    inference(forward_demodulation,[status(thm)],[f53,f2385]) ).

fof(f2387,plain,
    ! [X0] : and(ll1,not(X0)) = xor(X0,ll1),
    inference(forward_demodulation,[status(thm)],[f159,f2386]) ).

fof(f2388,plain,
    ! [X0] : not(X0) = xor(X0,ll1),
    inference(forward_demodulation,[status(thm)],[f168,f2387]) ).

fof(f2404,plain,
    ! [X0,X1] : or(and(X0,not(and(X1,not(X0)))),and(X1,not(X0))) = xor(X0,and(X1,not(X0))),
    inference(paramodulation,[status(thm)],[f99,f80]) ).

fof(f2405,plain,
    ! [X0,X1] : or(and(X0,not(X1)),and(X1,not(and(X0,not(X1))))) = xor(X1,and(X0,not(X1))),
    inference(forward_demodulation,[status(thm)],[f37,f2404]) ).

fof(f2406,plain,
    ! [X0,X1] : or(and(X0,not(X1)),X1) = xor(X1,and(X0,not(X1))),
    inference(forward_demodulation,[status(thm)],[f415,f2405]) ).

fof(f2407,plain,
    ! [X0,X1] : or(X0,and(X1,not(X0))) = xor(X0,and(X1,not(X0))),
    inference(forward_demodulation,[status(thm)],[f37,f2406]) ).

fof(f2408,plain,
    ! [X0,X1] : or(X0,X1) = xor(X0,and(X1,not(X0))),
    inference(forward_demodulation,[status(thm)],[f415,f2407]) ).

fof(f2423,plain,
    ! [X0,X1] : or(and(X0,not(or(not(not(X0)),X1))),and(not(X0),X1)) = xor(X0,or(not(not(X0)),X1)),
    inference(paramodulation,[status(thm)],[f312,f80]) ).

fof(f2424,plain,
    ! [X0,X1] : or(and(not(X0),X1),and(X0,not(or(not(not(X0)),X1)))) = xor(X0,or(not(not(X0)),X1)),
    inference(forward_demodulation,[status(thm)],[f37,f2423]) ).

fof(f2425,plain,
    ! [X0,X1] : or(and(not(X0),X1),and(X0,and(not(X0),not(X1)))) = xor(X0,or(not(not(X0)),X1)),
    inference(forward_demodulation,[status(thm)],[f1608,f2424]) ).

fof(f2426,plain,
    ! [X0,X1] : or(and(not(X0),X1),ll0) = xor(X0,or(not(not(X0)),X1)),
    inference(forward_demodulation,[status(thm)],[f281,f2425]) ).

fof(f2427,plain,
    ! [X0,X1] : and(not(X0),X1) = xor(X0,or(not(not(X0)),X1)),
    inference(forward_demodulation,[status(thm)],[f41,f2426]) ).

fof(f2428,plain,
    ! [X0,X1] : and(not(X0),X1) = xor(X0,or(X0,X1)),
    inference(forward_demodulation,[status(thm)],[f49,f2427]) ).

fof(f2505,plain,
    ! [X0,X1,X2] : xor(X0,xor(X1,X2)) = xor(X2,xor(X0,X1)),
    inference(paramodulation,[status(thm)],[f59,f60]) ).

fof(f2510,plain,
    ! [X0] : xor(a,xor(xor(b,cin),X0)) = xor(sum_def,X0),
    inference(paramodulation,[status(thm)],[f81,f60]) ).

fof(f2511,plain,
    ! [X0] : xor(a,xor(b,xor(cin,X0))) = xor(sum_def,X0),
    inference(forward_demodulation,[status(thm)],[f60,f2510]) ).

fof(f2512,plain,
    ! [X0,X1,X2] : xor(X0,xor(X1,X2)) = xor(xor(X1,X0),X2),
    inference(paramodulation,[status(thm)],[f59,f60]) ).

fof(f2513,plain,
    ! [X0,X1,X2] : xor(X0,xor(X1,X2)) = xor(X1,xor(X0,X2)),
    inference(forward_demodulation,[status(thm)],[f60,f2512]) ).

fof(f3553,plain,
    not(xor(t5,t7)) = and(t5,t7),
    inference(paramodulation,[status(thm)],[f2282,f49]) ).

fof(f3902,plain,
    not(xor(a,t2)) = and(a,t2),
    inference(paramodulation,[status(thm)],[f2300,f49]) ).

fof(f3941,plain,
    not(xor(b,t3)) = and(b,t3),
    inference(paramodulation,[status(thm)],[f2313,f49]) ).

fof(f4020,plain,
    xor(a,xor(b,ll0)) = xor(sum_def,cin),
    inference(paramodulation,[status(thm)],[f2369,f2511]) ).

fof(f4021,plain,
    xor(ll0,xor(a,b)) = xor(sum_def,cin),
    inference(forward_demodulation,[status(thm)],[f2505,f4020]) ).

fof(f4022,plain,
    xor(a,b) = xor(sum_def,cin),
    inference(forward_demodulation,[status(thm)],[f2360,f4021]) ).

fof(f4023,plain,
    xor(a,b) = xor(cin,sum_def),
    inference(forward_demodulation,[status(thm)],[f59,f4022]) ).

fof(f4025,plain,
    ! [X0,X1] : xor(X0,xor(X0,X1)) = xor(ll0,X1),
    inference(paramodulation,[status(thm)],[f2369,f60]) ).

fof(f4026,plain,
    ! [X0,X1] : xor(X0,xor(X0,X1)) = X1,
    inference(forward_demodulation,[status(thm)],[f2360,f4025]) ).

fof(f4042,plain,
    ! [X0,X1] : xor(ll1,xor(X0,X1)) = xor(not(X0),X1),
    inference(paramodulation,[status(thm)],[f2364,f60]) ).

fof(f4043,plain,
    ! [X0,X1] : not(xor(X0,X1)) = xor(not(X0),X1),
    inference(forward_demodulation,[status(thm)],[f2364,f4042]) ).

fof(f4044,plain,
    ! [X0,X1] : not(xor(X0,X1)) = xor(X0,not(X1)),
    inference(forward_demodulation,[status(thm)],[f2383,f4043]) ).

fof(f4065,plain,
    ! [X0,X1] : xor(X0,xor(ll1,X1)) = xor(not(X0),X1),
    inference(paramodulation,[status(thm)],[f2388,f60]) ).

fof(f4066,plain,
    ! [X0,X1] : xor(X0,not(X1)) = xor(not(X0),X1),
    inference(forward_demodulation,[status(thm)],[f2364,f4065]) ).

fof(f4067,plain,
    ! [X0,X1] : not(xor(X0,X1)) = xor(not(X0),X1),
    inference(forward_demodulation,[status(thm)],[f4044,f4066]) ).

fof(f4081,plain,
    xor(cin,t7) = t5,
    inference(paramodulation,[status(thm)],[f2323,f4026]) ).

fof(f4082,plain,
    xor(b,t3) = t1,
    inference(paramodulation,[status(thm)],[f2309,f4026]) ).

fof(f4085,plain,
    xor(a,t2) = t1,
    inference(paramodulation,[status(thm)],[f2296,f4026]) ).

fof(f4093,plain,
    ! [X0,X1] : xor(X0,xor(X1,X0)) = X1,
    inference(paramodulation,[status(thm)],[f59,f4026]) ).

fof(f4118,plain,
    not(t1) = and(b,t3),
    inference(backward_demodulation,[status(thm)],[f4082,f3941]) ).

fof(f4151,plain,
    not(t1) = and(a,t2),
    inference(backward_demodulation,[status(thm)],[f4085,f3902]) ).

fof(f4196,plain,
    ! [X0,X1] : or(X0,and(not(X0),X1)) = or(X0,xor(X0,X1)),
    inference(paramodulation,[status(thm)],[f80,f118]) ).

fof(f4197,plain,
    ! [X0,X1] : or(X0,X1) = or(X0,xor(X0,X1)),
    inference(forward_demodulation,[status(thm)],[f387,f4196]) ).

fof(f4689,plain,
    xor(t7,t5) = cin,
    inference(paramodulation,[status(thm)],[f4081,f4093]) ).

fof(f4690,plain,
    xor(t5,t7) = cin,
    inference(forward_demodulation,[status(thm)],[f59,f4689]) ).

fof(f4696,plain,
    xor(t2,t1) = a,
    inference(paramodulation,[status(thm)],[f4085,f4093]) ).

fof(f4697,plain,
    xor(t1,t2) = a,
    inference(forward_demodulation,[status(thm)],[f59,f4696]) ).

fof(f4727,plain,
    not(cin) = and(t5,t7),
    inference(backward_demodulation,[status(thm)],[f4690,f3553]) ).

fof(f4776,plain,
    and(t3,not(t1)) = and(b,t3),
    inference(paramodulation,[status(thm)],[f4118,f99]) ).

fof(f4777,plain,
    and(t3,not(t1)) = not(t1),
    inference(forward_demodulation,[status(thm)],[f4118,f4776]) ).

fof(f4802,plain,
    and(t2,not(t1)) = and(a,t2),
    inference(paramodulation,[status(thm)],[f4151,f99]) ).

fof(f4803,plain,
    and(t2,not(t1)) = not(t1),
    inference(forward_demodulation,[status(thm)],[f4151,f4802]) ).

fof(f4822,plain,
    and(not(carry),t7) = and(t1,not(cin)),
    inference(paramodulation,[status(thm)],[f4727,f492]) ).

fof(f4823,plain,
    and(t7,not(carry)) = and(t1,not(cin)),
    inference(forward_demodulation,[status(thm)],[f38,f4822]) ).

fof(f4827,plain,
    and(t5,not(cin)) = and(t5,t7),
    inference(paramodulation,[status(thm)],[f4727,f101]) ).

fof(f4828,plain,
    and(t5,not(cin)) = not(cin),
    inference(forward_demodulation,[status(thm)],[f4727,f4827]) ).

fof(f4829,plain,
    and(t7,not(cin)) = and(t5,t7),
    inference(paramodulation,[status(thm)],[f4727,f99]) ).

fof(f4830,plain,
    and(t7,not(cin)) = not(cin),
    inference(forward_demodulation,[status(thm)],[f4727,f4829]) ).

fof(f5124,plain,
    xor(sum_def,xor(a,b)) = cin,
    inference(paramodulation,[status(thm)],[f4023,f4093]) ).

fof(f5125,plain,
    xor(a,xor(sum_def,b)) = cin,
    inference(forward_demodulation,[status(thm)],[f2513,f5124]) ).

fof(f5126,plain,
    xor(a,xor(b,sum_def)) = cin,
    inference(forward_demodulation,[status(thm)],[f59,f5125]) ).

fof(f5142,plain,
    ! [X0,X1] : not(xor(X0,X1)) = xor(not(X1),X0),
    inference(paramodulation,[status(thm)],[f59,f4044]) ).

fof(f5143,plain,
    ! [X0,X1] : not(xor(X0,X1)) = not(xor(X1,X0)),
    inference(forward_demodulation,[status(thm)],[f4067,f5142]) ).

fof(f6508,plain,
    or(not(t1),and(not(t2),t1)) = xor(t2,t1),
    inference(paramodulation,[status(thm)],[f4803,f80]) ).

fof(f6509,plain,
    or(not(t1),not(t2)) = xor(t2,t1),
    inference(forward_demodulation,[status(thm)],[f2221,f6508]) ).

fof(f6510,plain,
    not(and(t1,t2)) = xor(t2,t1),
    inference(forward_demodulation,[status(thm)],[f57,f6509]) ).

fof(f6511,plain,
    not(and(t1,t2)) = xor(t1,t2),
    inference(forward_demodulation,[status(thm)],[f59,f6510]) ).

fof(f6512,plain,
    not(and(t1,t2)) = a,
    inference(forward_demodulation,[status(thm)],[f4697,f6511]) ).

fof(f6557,plain,
    not(a) = and(t1,t2),
    inference(paramodulation,[status(thm)],[f6512,f49]) ).

fof(f6593,plain,
    and(t1,not(a)) = and(t1,t2),
    inference(paramodulation,[status(thm)],[f6557,f101]) ).

fof(f6594,plain,
    and(t1,not(a)) = not(a),
    inference(forward_demodulation,[status(thm)],[f6557,f6593]) ).

fof(f6658,plain,
    and(not(t6),not(cin)) = and(t4,not(cin)),
    inference(paramodulation,[status(thm)],[f4828,f510]) ).

fof(f6659,plain,
    not(or(t6,cin)) = and(t4,not(cin)),
    inference(forward_demodulation,[status(thm)],[f56,f6658]) ).

fof(f6660,plain,
    not(or(cin,t6)) = and(t4,not(cin)),
    inference(forward_demodulation,[status(thm)],[f1604,f6659]) ).

fof(f6661,plain,
    not(t6) = and(t4,not(cin)),
    inference(forward_demodulation,[status(thm)],[f2187,f6660]) ).

fof(f6662,plain,
    and(not(carry),not(cin)) = and(t1,not(cin)),
    inference(paramodulation,[status(thm)],[f4828,f492]) ).

fof(f6663,plain,
    not(or(carry,cin)) = and(t1,not(cin)),
    inference(forward_demodulation,[status(thm)],[f56,f6662]) ).

fof(f6664,plain,
    not(or(cin,carry)) = and(t1,not(cin)),
    inference(forward_demodulation,[status(thm)],[f1604,f6663]) ).

fof(f6700,plain,
    or(not(cin),and(not(t7),cin)) = xor(t7,cin),
    inference(paramodulation,[status(thm)],[f4830,f80]) ).

fof(f6701,plain,
    or(not(cin),not(t7)) = xor(t7,cin),
    inference(forward_demodulation,[status(thm)],[f2221,f6700]) ).

fof(f6702,plain,
    not(and(cin,t7)) = xor(t7,cin),
    inference(forward_demodulation,[status(thm)],[f57,f6701]) ).

fof(f6703,plain,
    not(and(cin,t7)) = xor(cin,t7),
    inference(forward_demodulation,[status(thm)],[f59,f6702]) ).

fof(f6704,plain,
    not(and(cin,t7)) = t5,
    inference(forward_demodulation,[status(thm)],[f4081,f6703]) ).

fof(f6749,plain,
    not(t5) = and(cin,t7),
    inference(paramodulation,[status(thm)],[f6704,f49]) ).

fof(f6795,plain,
    ! [X0] : and(cin,or(t7,X0)) = or(not(t5),and(cin,X0)),
    inference(paramodulation,[status(thm)],[f6749,f43]) ).

fof(f6796,plain,
    ! [X0] : and(cin,or(t7,X0)) = and(cin,or(X0,t4)),
    inference(forward_demodulation,[status(thm)],[f535,f6795]) ).

fof(f7117,plain,
    or(not(t6),and(not(t4),cin)) = xor(t4,cin),
    inference(paramodulation,[status(thm)],[f6661,f80]) ).

fof(f7118,plain,
    or(not(t6),and(cin,not(t4))) = xor(t4,cin),
    inference(forward_demodulation,[status(thm)],[f369,f7117]) ).

fof(f7119,plain,
    or(not(t6),and(cin,not(t4))) = xor(cin,t4),
    inference(forward_demodulation,[status(thm)],[f59,f7118]) ).

fof(f7450,plain,
    ! [X0] : and(cin,or(and(X0,cin),t4)) = or(not(t5),and(X0,cin)),
    inference(paramodulation,[status(thm)],[f99,f535]) ).

fof(f7451,plain,
    ! [X0] : and(cin,or(t7,and(X0,cin))) = or(not(t5),and(X0,cin)),
    inference(forward_demodulation,[status(thm)],[f6796,f7450]) ).

fof(f7452,plain,
    ! [X0] : and(cin,or(t7,X0)) = or(not(t5),and(X0,cin)),
    inference(forward_demodulation,[status(thm)],[f1083,f7451]) ).

fof(f7936,plain,
    and(not(t4),not(t1)) = and(t2,not(t1)),
    inference(paramodulation,[status(thm)],[f4777,f545]) ).

fof(f7937,plain,
    not(or(t4,t1)) = and(t2,not(t1)),
    inference(forward_demodulation,[status(thm)],[f56,f7936]) ).

fof(f7938,plain,
    not(or(t1,t4)) = and(t2,not(t1)),
    inference(forward_demodulation,[status(thm)],[f1604,f7937]) ).

fof(f7939,plain,
    not(or(t1,t4)) = not(t1),
    inference(forward_demodulation,[status(thm)],[f4803,f7938]) ).

fof(f8232,plain,
    not(not(t1)) = or(t1,t4),
    inference(paramodulation,[status(thm)],[f7939,f49]) ).

fof(f8233,plain,
    t1 = or(t1,t4),
    inference(forward_demodulation,[status(thm)],[f49,f8232]) ).

fof(f8266,plain,
    and(t4,t1) = t4,
    inference(paramodulation,[status(thm)],[f8233,f88]) ).

fof(f8267,plain,
    and(t1,t4) = t4,
    inference(forward_demodulation,[status(thm)],[f38,f8266]) ).

fof(f8270,plain,
    and(t1,or(t4,t5)) = or(not(carry),t4),
    inference(paramodulation,[status(thm)],[f8267,f489]) ).

fof(f8271,plain,
    and(t1,ll1) = or(not(carry),t4),
    inference(forward_demodulation,[status(thm)],[f2190,f8270]) ).

fof(f8272,plain,
    t1 = or(not(carry),t4),
    inference(forward_demodulation,[status(thm)],[f42,f8271]) ).

fof(f8273,plain,
    t1 = or(t4,not(carry)),
    inference(forward_demodulation,[status(thm)],[f37,f8272]) ).

fof(f8710,plain,
    ! [X0,X1] : xor(and(X0,not(X1)),or(X1,X0)) = X1,
    inference(paramodulation,[status(thm)],[f2408,f4093]) ).

fof(f8711,plain,
    ! [X0,X1] : xor(or(X0,X1),and(X1,not(X0))) = X0,
    inference(forward_demodulation,[status(thm)],[f59,f8710]) ).

fof(f8988,plain,
    ! [X0,X1] : or(and(X0,not(and(not(not(X0)),X1))),ll0) = xor(X0,and(not(not(X0)),X1)),
    inference(paramodulation,[status(thm)],[f281,f80]) ).

fof(f8989,plain,
    ! [X0,X1] : and(X0,not(and(not(not(X0)),X1))) = xor(X0,and(not(not(X0)),X1)),
    inference(forward_demodulation,[status(thm)],[f41,f8988]) ).

fof(f8990,plain,
    ! [X0,X1] : and(X0,or(not(X0),not(X1))) = xor(X0,and(not(not(X0)),X1)),
    inference(forward_demodulation,[status(thm)],[f1650,f8989]) ).

fof(f8991,plain,
    ! [X0,X1] : and(X0,not(X1)) = xor(X0,and(not(not(X0)),X1)),
    inference(forward_demodulation,[status(thm)],[f312,f8990]) ).

fof(f8992,plain,
    ! [X0,X1] : and(X0,not(X1)) = xor(X0,and(X0,X1)),
    inference(forward_demodulation,[status(thm)],[f49,f8991]) ).

fof(f9134,plain,
    and(not(t2),t4) = xor(t2,ll1),
    inference(paramodulation,[status(thm)],[f2178,f2428]) ).

fof(f9135,plain,
    and(t4,not(t2)) = xor(t2,ll1),
    inference(forward_demodulation,[status(thm)],[f38,f9134]) ).

fof(f9136,plain,
    and(t4,not(t2)) = not(t2),
    inference(forward_demodulation,[status(thm)],[f2388,f9135]) ).

fof(f9200,plain,
    and(not(t4),not(carry)) = xor(t4,t1),
    inference(paramodulation,[status(thm)],[f8273,f2428]) ).

fof(f9201,plain,
    not(or(t4,carry)) = xor(t4,t1),
    inference(forward_demodulation,[status(thm)],[f56,f9200]) ).

fof(f9202,plain,
    not(or(t4,carry)) = xor(t1,t4),
    inference(forward_demodulation,[status(thm)],[f59,f9201]) ).

fof(f10917,plain,
    ! [X0] : and(cin,or(t4,X0)) = or(not(t5),and(X0,cin)),
    inference(paramodulation,[status(thm)],[f456,f351]) ).

fof(f10918,plain,
    ! [X0] : and(cin,or(t4,X0)) = and(cin,or(t7,X0)),
    inference(forward_demodulation,[status(thm)],[f7452,f10917]) ).

fof(f12217,plain,
    and(not(t3),not(a)) = and(b,not(a)),
    inference(paramodulation,[status(thm)],[f6594,f554]) ).

fof(f12218,plain,
    not(or(t3,a)) = and(b,not(a)),
    inference(forward_demodulation,[status(thm)],[f56,f12217]) ).

fof(f12219,plain,
    not(or(a,t3)) = and(b,not(a)),
    inference(forward_demodulation,[status(thm)],[f1604,f12218]) ).

fof(f12220,plain,
    not(t3) = and(b,not(a)),
    inference(forward_demodulation,[status(thm)],[f2169,f12219]) ).

fof(f12589,plain,
    or(not(t3),and(not(b),a)) = xor(b,a),
    inference(paramodulation,[status(thm)],[f12220,f80]) ).

fof(f12590,plain,
    or(not(t3),and(a,not(b))) = xor(b,a),
    inference(forward_demodulation,[status(thm)],[f369,f12589]) ).

fof(f12591,plain,
    or(not(t3),and(a,not(b))) = xor(a,b),
    inference(forward_demodulation,[status(thm)],[f59,f12590]) ).

fof(f12651,plain,
    not(xor(t1,t4)) = or(t4,carry),
    inference(paramodulation,[status(thm)],[f9202,f49]) ).

fof(f13201,plain,
    and(not(t2),t4) = and(a,t4),
    inference(paramodulation,[status(thm)],[f8267,f563]) ).

fof(f13202,plain,
    and(t4,not(t2)) = and(a,t4),
    inference(forward_demodulation,[status(thm)],[f38,f13201]) ).

fof(f13203,plain,
    not(t2) = and(a,t4),
    inference(forward_demodulation,[status(thm)],[f9136,f13202]) ).

fof(f14853,plain,
    ! [X0,X1] : xor(or(X0,X1),and(X0,not(X1))) = X1,
    inference(paramodulation,[status(thm)],[f37,f8711]) ).

fof(f15384,plain,
    and(a,not(t4)) = xor(a,not(t2)),
    inference(paramodulation,[status(thm)],[f13203,f8992]) ).

fof(f15385,plain,
    and(a,not(t4)) = not(xor(a,t2)),
    inference(forward_demodulation,[status(thm)],[f4044,f15384]) ).

fof(f15386,plain,
    and(a,not(t4)) = not(t1),
    inference(forward_demodulation,[status(thm)],[f4085,f15385]) ).

fof(f15405,plain,
    and(a,not(b)) = xor(a,not(t1)),
    inference(paramodulation,[status(thm)],[f460,f8992]) ).

fof(f15406,plain,
    and(a,not(b)) = not(xor(a,t1)),
    inference(forward_demodulation,[status(thm)],[f4044,f15405]) ).

fof(f15407,plain,
    and(a,not(b)) = not(t2),
    inference(forward_demodulation,[status(thm)],[f2296,f15406]) ).

fof(f15482,plain,
    and(cin,not(t4)) = xor(cin,not(t5)),
    inference(paramodulation,[status(thm)],[f456,f8992]) ).

fof(f15483,plain,
    and(cin,not(t4)) = not(xor(cin,t5)),
    inference(forward_demodulation,[status(thm)],[f4044,f15482]) ).

fof(f15484,plain,
    and(cin,not(t4)) = not(t7),
    inference(forward_demodulation,[status(thm)],[f2323,f15483]) ).

fof(f15748,plain,
    or(not(t3),not(t2)) = xor(a,b),
    inference(backward_demodulation,[status(thm)],[f15407,f12591]) ).

fof(f15749,plain,
    not(and(t3,t2)) = xor(a,b),
    inference(forward_demodulation,[status(thm)],[f57,f15748]) ).

fof(f15750,plain,
    not(and(t2,t3)) = xor(a,b),
    inference(forward_demodulation,[status(thm)],[f1646,f15749]) ).

fof(f15751,plain,
    not(not(t4)) = xor(a,b),
    inference(forward_demodulation,[status(thm)],[f457,f15750]) ).

fof(f15752,plain,
    t4 = xor(a,b),
    inference(forward_demodulation,[status(thm)],[f49,f15751]) ).

fof(f15764,plain,
    or(not(t6),not(t7)) = xor(cin,t4),
    inference(backward_demodulation,[status(thm)],[f15484,f7119]) ).

fof(f15765,plain,
    not(and(t6,t7)) = xor(cin,t4),
    inference(forward_demodulation,[status(thm)],[f57,f15764]) ).

fof(f15766,plain,
    not(not(sum)) = xor(cin,t4),
    inference(forward_demodulation,[status(thm)],[f453,f15765]) ).

fof(f15767,plain,
    sum = xor(cin,t4),
    inference(forward_demodulation,[status(thm)],[f49,f15766]) ).

fof(f15962,plain,
    or(a,b) = or(a,t4),
    inference(paramodulation,[status(thm)],[f15752,f4197]) ).

fof(f15965,plain,
    ! [X0] : xor(a,xor(b,X0)) = xor(t4,X0),
    inference(paramodulation,[status(thm)],[f15752,f60]) ).

fof(f15976,plain,
    xor(t4,sum_def) = cin,
    inference(backward_demodulation,[status(thm)],[f15965,f5126]) ).

fof(f15977,plain,
    xor(sum_def,t4) = cin,
    inference(forward_demodulation,[status(thm)],[f59,f15976]) ).

fof(f17093,plain,
    xor(t4,cin) = sum_def,
    inference(paramodulation,[status(thm)],[f15977,f4093]) ).

fof(f17094,plain,
    xor(cin,t4) = sum_def,
    inference(forward_demodulation,[status(thm)],[f59,f17093]) ).

fof(f17095,plain,
    sum = sum_def,
    inference(forward_demodulation,[status(thm)],[f15767,f17094]) ).

fof(f17096,plain,
    ( $false
    | spl0_0 ),
    inference(forward_subsumption_resolution,[status(thm)],[f17095,f75]) ).

fof(f17097,plain,
    spl0_0,
    inference(contradiction_clause,[status(thm)],[f17096]) ).

fof(f18549,plain,
    ! [X0] : or(carry,and(t1,X0)) = and(ll1,or(carry,X0)),
    inference(paramodulation,[status(thm)],[f2205,f399]) ).

fof(f18550,plain,
    ! [X0] : or(carry,and(t1,X0)) = or(carry,X0),
    inference(forward_demodulation,[status(thm)],[f168,f18549]) ).

fof(f20423,plain,
    or(t4,a) = xor(t4,not(t1)),
    inference(paramodulation,[status(thm)],[f15386,f2408]) ).

fof(f20424,plain,
    or(a,t4) = xor(t4,not(t1)),
    inference(forward_demodulation,[status(thm)],[f37,f20423]) ).

fof(f20425,plain,
    or(a,b) = xor(t4,not(t1)),
    inference(forward_demodulation,[status(thm)],[f15962,f20424]) ).

fof(f20426,plain,
    or(a,b) = not(xor(t4,t1)),
    inference(forward_demodulation,[status(thm)],[f4044,f20425]) ).

fof(f20427,plain,
    or(a,b) = not(xor(t1,t4)),
    inference(forward_demodulation,[status(thm)],[f5143,f20426]) ).

fof(f20428,plain,
    or(a,b) = or(t4,carry),
    inference(forward_demodulation,[status(thm)],[f12651,f20427]) ).

fof(f29106,plain,
    or(cin,not(or(cin,t1))) = or(cin,carry_def),
    inference(paramodulation,[status(thm)],[f487,f1248]) ).

fof(f29107,plain,
    or(cin,not(t1)) = or(cin,carry_def),
    inference(forward_demodulation,[status(thm)],[f2059,f29106]) ).

fof(f30785,plain,
    and(not(cin),not(t1)) = xor(cin,or(cin,carry_def)),
    inference(paramodulation,[status(thm)],[f29107,f2428]) ).

fof(f30786,plain,
    not(or(cin,t1)) = xor(cin,or(cin,carry_def)),
    inference(forward_demodulation,[status(thm)],[f56,f30785]) ).

fof(f30787,plain,
    not(or(cin,t1)) = and(not(cin),carry_def),
    inference(forward_demodulation,[status(thm)],[f2428,f30786]) ).

fof(f30788,plain,
    not(or(cin,t1)) = and(carry_def,not(cin)),
    inference(forward_demodulation,[status(thm)],[f38,f30787]) ).

fof(f30819,plain,
    or(and(carry_def,not(cin)),and(cin,or(a,b))) = carry_def,
    inference(backward_demodulation,[status(thm)],[f30788,f487]) ).

fof(f30981,plain,
    xor(carry_def,and(and(carry_def,not(cin)),not(and(cin,or(a,b))))) = and(cin,or(a,b)),
    inference(paramodulation,[status(thm)],[f30819,f14853]) ).

fof(f30982,plain,
    xor(carry_def,and(carry_def,and(not(cin),not(and(cin,or(a,b)))))) = and(cin,or(a,b)),
    inference(forward_demodulation,[status(thm)],[f40,f30981]) ).

fof(f30983,plain,
    and(carry_def,not(and(not(cin),not(and(cin,or(a,b)))))) = and(cin,or(a,b)),
    inference(forward_demodulation,[status(thm)],[f8992,f30982]) ).

fof(f30984,plain,
    and(carry_def,or(cin,not(not(and(cin,or(a,b)))))) = and(cin,or(a,b)),
    inference(forward_demodulation,[status(thm)],[f1650,f30983]) ).

fof(f30985,plain,
    and(carry_def,or(cin,and(cin,or(a,b)))) = and(cin,or(a,b)),
    inference(forward_demodulation,[status(thm)],[f49,f30984]) ).

fof(f30986,plain,
    and(carry_def,cin) = and(cin,or(a,b)),
    inference(forward_demodulation,[status(thm)],[f54,f30985]) ).

fof(f30987,plain,
    and(cin,carry_def) = and(cin,or(a,b)),
    inference(forward_demodulation,[status(thm)],[f38,f30986]) ).

fof(f31357,plain,
    or(carry,and(t1,not(cin))) = or(carry,t7),
    inference(paramodulation,[status(thm)],[f4823,f415]) ).

fof(f31358,plain,
    or(carry,not(cin)) = or(carry,t7),
    inference(forward_demodulation,[status(thm)],[f18550,f31357]) ).

fof(f31359,plain,
    or(carry,not(cin)) = or(t7,carry),
    inference(forward_demodulation,[status(thm)],[f37,f31358]) ).

fof(f31413,plain,
    and(cin,or(t7,carry)) = and(cin,carry),
    inference(paramodulation,[status(thm)],[f31359,f338]) ).

fof(f31414,plain,
    and(cin,or(t4,carry)) = and(cin,carry),
    inference(forward_demodulation,[status(thm)],[f10918,f31413]) ).

fof(f31415,plain,
    and(cin,or(a,b)) = and(cin,carry),
    inference(forward_demodulation,[status(thm)],[f20428,f31414]) ).

fof(f31416,plain,
    and(cin,carry_def) = and(cin,carry),
    inference(forward_demodulation,[status(thm)],[f30987,f31415]) ).

fof(f31497,plain,
    and(cin,not(carry)) = xor(cin,and(cin,carry_def)),
    inference(paramodulation,[status(thm)],[f31416,f8992]) ).

fof(f31498,plain,
    and(cin,not(carry)) = and(cin,not(carry_def)),
    inference(forward_demodulation,[status(thm)],[f8992,f31497]) ).

fof(f31581,plain,
    not(and(t1,not(cin))) = or(cin,carry),
    inference(paramodulation,[status(thm)],[f6664,f49]) ).

fof(f31582,plain,
    or(not(t1),cin) = or(cin,carry),
    inference(forward_demodulation,[status(thm)],[f1656,f31581]) ).

fof(f31583,plain,
    or(cin,not(t1)) = or(cin,carry),
    inference(forward_demodulation,[status(thm)],[f37,f31582]) ).

fof(f31584,plain,
    or(cin,carry_def) = or(cin,carry),
    inference(forward_demodulation,[status(thm)],[f29107,f31583]) ).

fof(f31636,plain,
    xor(or(cin,carry_def),and(cin,not(carry))) = carry,
    inference(paramodulation,[status(thm)],[f31584,f14853]) ).

fof(f31637,plain,
    xor(or(cin,carry_def),and(cin,not(carry_def))) = carry,
    inference(forward_demodulation,[status(thm)],[f31498,f31636]) ).

fof(f31638,plain,
    carry_def = carry,
    inference(forward_demodulation,[status(thm)],[f14853,f31637]) ).

fof(f31639,plain,
    ( $false
    | spl0_1 ),
    inference(forward_subsumption_resolution,[status(thm)],[f31638,f78]) ).

fof(f31640,plain,
    spl0_1,
    inference(contradiction_clause,[status(thm)],[f31639]) ).

fof(f31641,plain,
    $false,
    inference(sat_refutation,[status(thm)],[f79,f17097,f31640]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.11/0.63  % Problem  : HWV003-2 : TPTP v8.1.2. Released v2.7.0.
% 0.11/0.63  % Command  : drodi -learnfrom(drodi.lrn) -timeout(%d) %s
% 0.13/0.85  % Computer : n029.cluster.edu
% 0.13/0.85  % Model    : x86_64 x86_64
% 0.13/0.85  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.85  % Memory   : 8042.1875MB
% 0.13/0.85  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.85  % CPULimit : 300
% 0.13/0.85  % WCLimit  : 300
% 0.13/0.85  % DateTime : Tue May 30 12:07:08 EDT 2023
% 0.13/0.85  % CPUTime  : 
% 0.13/0.86  % Drodi V3.5.1
% 23.24/3.86  % Refutation found
% 23.24/3.86  % SZS status Unsatisfiable for theBenchmark: Theory is unsatisfiable
% 23.24/3.86  % SZS output start CNFRefutation for theBenchmark
% See solution above
% 24.64/3.99  % Elapsed time: 3.119077 seconds
% 24.64/3.99  % CPU time: 24.366422 seconds
% 24.64/3.99  % Memory used: 390.798 MB
%------------------------------------------------------------------------------