TPTP Axioms File: HWV001-1.ax


%--------------------------------------------------------------------------
% File     : HWV001-1 : TPTP v7.5.0. Released v2.1.0.
% Domain   : Hardware Verification
% Axioms   : Half-adder.
% Version  : [Gei96] axioms.
% English  :

% Refs     : [Gei96] Geisler (1996), Email to G. Sutcliffe
% Source   : [Gei96]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of clauses    :   13 (   0 non-Horn;   0 unit;  13 RR)
%            Number of atoms      :   26 (   0 equality)
%            Maximal clause size  :    2 (   2 average)
%            Number of predicates :    2 (   0 propositional; 2-2 arity)
%            Number of functors   :   14 (   8 constant; 0-2 arity)
%            Number of variables  :   13 (   0 singleton)
%            Maximal term depth   :    3 (   2 average)
% SPC      : 

% Comments : Requires HWV001-0.ax
%--------------------------------------------------------------------------
%----Composition of halfadder
cnf(halfadder_and1,axiom,
    ( ~ type(X,halfadder)
    | type(and1(X),and) )).

cnf(halfadder_and2,axiom,
    ( ~ type(X,halfadder)
    | type(and2(X),and) )).

cnf(halfadder_not1,axiom,
    ( ~ type(X,halfadder)
    | type(not1(X),not) )).

cnf(halfadder_or1,axiom,
    ( ~ type(X,halfadder)
    | type(or1(X),or) )).

%----Connections of halfadder
cnf(halfadder_connection_in1_in1or1,axiom,
    ( ~ type(X,halfadder)
    | connection(in(n1,X),in(n1,or1(X))) )).

cnf(halfadder_connection_in2_in2or1,axiom,
    ( ~ type(X,halfadder)
    | connection(in(n2,X),in(n2,or1(X))) )).

cnf(halfadder_connection_in1_in1and2,axiom,
    ( ~ type(X,halfadder)
    | connection(in(n1,X),in(n1,and2(X))) )).

cnf(halfadder_connection_in2_in2and2,axiom,
    ( ~ type(X,halfadder)
    | connection(in(n2,X),in(n2,and2(X))) )).

cnf(halfadder_connection_outs_out1and1,axiom,
    ( ~ type(X,halfadder)
    | connection(out(s,X),out(n1,and1(X))) )).

cnf(halfadder_connection_outc_out1and2,axiom,
    ( ~ type(X,halfadder)
    | connection(out(c,X),out(n1,and2(X))) )).

cnf(halfadder_connection_out1or1_in1_and1,axiom,
    ( ~ type(X,halfadder)
    | connection(out(n1,or1(X)),in(n1,and1(X))) )).

cnf(halfadder_connection_out1and2_in1not1,axiom,
    ( ~ type(X,halfadder)
    | connection(out(n1,and2(X)),in(n1,not1(X))) )).

cnf(halfadder_connection_out1not1_in2and1,axiom,
    ( ~ type(X,halfadder)
    | connection(out(n1,not1(X)),in(n2,and1(X))) )).

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