↑ Up

Drodi---4.1.1.THM-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : Drodi---4.1.1
% Problem  : SEU239+1 : TPTP v9.3.1. Released v3.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : drodi -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p

% Computer : n005.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8046.5625MB
% OS       : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Thu Sep 24 02:19:51 PM UTC 2026

% Result   : Theorem 0.11s 0.43s
% Output   : CNFRefutation 0.11s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    8
%            Number of leaves      :   23
% Syntax   : Number of formulae    :   97 (  14 unt;  14 def)
%            Number of atoms       :  262 (   6 equ)
%            Maximal formula atoms :    7 (   2 avg)
%            Number of connectives :  276 ( 111   ~; 110   |;  24   &)
%                                         (  20 <=>;  10  =>;   0  <=;   1 <~>)
%            Maximal formula depth :    9 (   4 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of predicates  :   23 (  21 usr;  15 prp; 0-2 aty)
%            Number of functors    :    8 (   8 usr;   5 con; 0-2 aty)
%            Number of variables   :   62 (  55   !;   7   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f2,axiom,
    ! [A] :
      ( empty(A)
     => function(A) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f3,axiom,
    ! [A] :
      ( ( function(A)
        & empty(A)
        & relation(A) )
     => ( one_to_one(A)
        & function(A)
        & relation(A) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f6,axiom,
    ! [A] :
      ( relation(A)
     => ! [B] :
          ( is_reflexive_in(A,B)
        <=> ! [C] :
              ( in(C,B)
             => in(ordered_pair(C,C),A) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f9,axiom,
    ! [A] :
      ( relation(A)
     => ( reflexive(A)
      <=> is_reflexive_in(A,relation_field(A)) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f20,axiom,
    empty(empty_set),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f25,conjecture,
    ! [A] :
      ( relation(A)
     => ( reflexive(A)
      <=> ! [B] :
            ( in(B,relation_field(A))
           => in(ordered_pair(B,B),A) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f26,negated_conjecture,
    ~ ! [A] :
        ( relation(A)
       => ( reflexive(A)
        <=> ! [B] :
              ( in(B,relation_field(A))
             => in(ordered_pair(B,B),A) ) ) ),
    inference(negated_conjecture,[status(cth)],[f25]) ).

fof(f28,axiom,
    ? [A] : empty(A),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f29,axiom,
    ? [A] :
      ( function(A)
      & empty(A)
      & relation(A) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f35,axiom,
    ! [A] :
      ( empty(A)
     => A = empty_set ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f40,plain,
    ! [A] :
      ( function(A)
      | ~ empty(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f2]) ).

fof(f41,plain,
    ! [X0] :
      ( function(X0)
      | ~ empty(X0) ),
    inference(cnf_transformation,[status(thm)],[f40]) ).

fof(f42,plain,
    ! [A] :
      ( ( one_to_one(A)
        & function(A)
        & relation(A) )
      | ~ function(A)
      | ~ empty(A)
      | ~ relation(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f3]) ).

fof(f45,plain,
    ! [X0] :
      ( one_to_one(X0)
      | ~ function(X0)
      | ~ empty(X0)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f42]) ).

fof(f48,plain,
    ! [A] :
      ( ! [B] :
          ( is_reflexive_in(A,B)
        <=> ! [C] :
              ( in(ordered_pair(C,C),A)
              | ~ in(C,B) ) )
      | ~ relation(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f6]) ).

fof(f49,plain,
    ! [A] :
      ( ! [B] :
          ( ( ? [C] :
                ( ~ in(ordered_pair(C,C),A)
                & in(C,B) )
            | is_reflexive_in(A,B) )
          & ( ! [C] :
                ( in(ordered_pair(C,C),A)
                | ~ in(C,B) )
            | ~ is_reflexive_in(A,B) ) )
      | ~ relation(A) ),
    inference(NNF_transformation,[status(thm)],[f48]) ).

fof(f50,plain,
    ! [A] :
      ( ( ! [B] :
            ( ? [C] :
                ( ~ in(ordered_pair(C,C),A)
                & in(C,B) )
            | is_reflexive_in(A,B) )
        & ! [B] :
            ( ! [C] :
                ( in(ordered_pair(C,C),A)
                | ~ in(C,B) )
            | ~ is_reflexive_in(A,B) ) )
      | ~ relation(A) ),
    inference(miniscoping,[status(thm)],[f49]) ).

fof(f51,plain,
    ! [A] :
      ( ( ! [B] :
            ( ( ~ in(ordered_pair(sK0_skl(B,A),sK0_skl(B,A)),A)
              & in(sK0_skl(B,A),B) )
            | is_reflexive_in(A,B) )
        & ! [B] :
            ( ! [C] :
                ( in(ordered_pair(C,C),A)
                | ~ in(C,B) )
            | ~ is_reflexive_in(A,B) ) )
      | ~ relation(A) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK0_skl]),skolemize(C,sK0_skl(B,A))],[f50]) ).

fof(f52,plain,
    ! [X0,X1,X2] :
      ( in(ordered_pair(X2,X2),X0)
      | ~ in(X2,X1)
      | ~ is_reflexive_in(X0,X1)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f51]) ).

fof(f53,plain,
    ! [X0,X1] :
      ( in(sK0_skl(X1,X0),X1)
      | is_reflexive_in(X0,X1)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f51]) ).

fof(f54,plain,
    ! [X0,X1] :
      ( ~ in(ordered_pair(sK0_skl(X1,X0),sK0_skl(X1,X0)),X0)
      | is_reflexive_in(X0,X1)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f51]) ).

fof(f58,plain,
    ! [A] :
      ( ( reflexive(A)
      <=> is_reflexive_in(A,relation_field(A)) )
      | ~ relation(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f9]) ).

fof(f59,plain,
    ! [A] :
      ( ( ( ~ is_reflexive_in(A,relation_field(A))
          | reflexive(A) )
        & ( is_reflexive_in(A,relation_field(A))
          | ~ reflexive(A) ) )
      | ~ relation(A) ),
    inference(NNF_transformation,[status(thm)],[f58]) ).

fof(f60,plain,
    ! [X0] :
      ( is_reflexive_in(X0,relation_field(X0))
      | ~ reflexive(X0)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f59]) ).

fof(f61,plain,
    ! [X0] :
      ( ~ is_reflexive_in(X0,relation_field(X0))
      | reflexive(X0)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f59]) ).

fof(f64,plain,
    empty(empty_set),
    inference(cnf_transformation,[status(thm)],[f20]) ).

fof(f74,plain,
    ? [A] :
      ( ( reflexive(A)
      <~> ! [B] :
            ( in(ordered_pair(B,B),A)
            | ~ in(B,relation_field(A)) ) )
      & relation(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f26]) ).

fof(f75,plain,
    ? [A] :
      ( ( ? [B] :
            ( ~ in(ordered_pair(B,B),A)
            & in(B,relation_field(A)) )
        | ~ reflexive(A) )
      & ( ! [B] :
            ( in(ordered_pair(B,B),A)
            | ~ in(B,relation_field(A)) )
        | reflexive(A) )
      & relation(A) ),
    inference(NNF_transformation,[status(thm)],[f74]) ).

fof(f76,plain,
    ( ( ( ~ in(ordered_pair(sK3_skl,sK3_skl),sK2_skl)
        & in(sK3_skl,relation_field(sK2_skl)) )
      | ~ reflexive(sK2_skl) )
    & ( ! [B] :
          ( in(ordered_pair(B,B),sK2_skl)
          | ~ in(B,relation_field(sK2_skl)) )
      | reflexive(sK2_skl) )
    & relation(sK2_skl) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK2_skl,sK3_skl]),skolemize(A,sK2_skl),skolemize(B,sK3_skl)],[f75]) ).

fof(f77,plain,
    relation(sK2_skl),
    inference(cnf_transformation,[status(thm)],[f76]) ).

fof(f78,plain,
    ! [X0] :
      ( in(ordered_pair(X0,X0),sK2_skl)
      | ~ in(X0,relation_field(sK2_skl))
      | reflexive(sK2_skl) ),
    inference(cnf_transformation,[status(thm)],[f76]) ).

fof(f79,plain,
    ( in(sK3_skl,relation_field(sK2_skl))
    | ~ reflexive(sK2_skl) ),
    inference(cnf_transformation,[status(thm)],[f76]) ).

fof(f80,plain,
    ( ~ in(ordered_pair(sK3_skl,sK3_skl),sK2_skl)
    | ~ reflexive(sK2_skl) ),
    inference(cnf_transformation,[status(thm)],[f76]) ).

fof(f84,plain,
    empty(sK5_skl),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK5_skl]),skolemize(A,sK5_skl)],[f28]) ).

fof(f85,plain,
    empty(sK5_skl),
    inference(cnf_transformation,[status(thm)],[f84]) ).

fof(f86,plain,
    ( function(sK6_skl)
    & empty(sK6_skl)
    & relation(sK6_skl) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK6_skl]),skolemize(A,sK6_skl)],[f29]) ).

fof(f87,plain,
    relation(sK6_skl),
    inference(cnf_transformation,[status(thm)],[f86]) ).

fof(f88,plain,
    empty(sK6_skl),
    inference(cnf_transformation,[status(thm)],[f86]) ).

fof(f101,plain,
    ! [A] :
      ( A = empty_set
      | ~ empty(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f35]) ).

fof(f102,plain,
    ! [X0] :
      ( X0 = empty_set
      | ~ empty(X0) ),
    inference(cnf_transformation,[status(thm)],[f101]) ).

fof(f109,definition,
    ( sQ0_spl
  <=> reflexive(sK2_skl) ),
    introduced(definition,[new_symbols(definition,[sQ0_spl])],[split_symbol_definition]) ).

fof(f112,definition,
    ! [X0] :
      ( sQ1_spl
    <=> ( in(ordered_pair(X0,X0),sK2_skl)
        | ~ in(X0,relation_field(sK2_skl)) ) ),
    introduced(definition,[new_symbols(definition,[sQ1_spl])],[split_symbol_definition]) ).

fof(f113,plain,
    ! [X0] :
      ( ~ sQ1_spl
      | in(ordered_pair(X0,X0),sK2_skl)
      | ~ in(X0,relation_field(sK2_skl)) ),
    inference(component_clause,[status(thm)],[f112]) ).

fof(f115,plain,
    ( sQ1_spl
    | sQ0_spl ),
    inference(split_clause,[status(thm)],[f78,f109,f112]) ).

fof(f116,definition,
    ( sQ2_spl
  <=> in(sK3_skl,relation_field(sK2_skl)) ),
    introduced(definition,[new_symbols(definition,[sQ2_spl])],[split_symbol_definition]) ).

fof(f117,plain,
    ( ~ sQ2_spl
    | in(sK3_skl,relation_field(sK2_skl)) ),
    inference(component_clause,[status(thm)],[f116]) ).

fof(f119,plain,
    ( sQ2_spl
    | ~ sQ0_spl ),
    inference(split_clause,[status(thm)],[f79,f109,f116]) ).

fof(f120,definition,
    ( sQ3_spl
  <=> in(ordered_pair(sK3_skl,sK3_skl),sK2_skl) ),
    introduced(definition,[new_symbols(definition,[sQ3_spl])],[split_symbol_definition]) ).

fof(f122,plain,
    ( sQ3_spl
    | ~ in(ordered_pair(sK3_skl,sK3_skl),sK2_skl) ),
    inference(component_clause,[status(thm)],[f120]) ).

fof(f123,plain,
    ( ~ sQ3_spl
    | ~ sQ0_spl ),
    inference(split_clause,[status(thm)],[f80,f109,f120]) ).

fof(f138,plain,
    ! [X0] :
      ( one_to_one(X0)
      | ~ empty(X0)
      | ~ relation(X0) ),
    inference(forward_subsumption_resolution,[status(thm)],[f45,f41]) ).

fof(f139,plain,
    ( one_to_one(empty_set)
    | ~ relation(empty_set) ),
    inference(resolution,[status(thm)],[f64,f138]) ).

fof(f141,definition,
    ( sQ6_spl
  <=> relation(empty_set) ),
    introduced(definition,[new_symbols(definition,[sQ6_spl])],[split_symbol_definition]) ).

fof(f143,plain,
    ( sQ6_spl
    | ~ relation(empty_set) ),
    inference(component_clause,[status(thm)],[f141]) ).

fof(f144,definition,
    ( sQ7_spl
  <=> one_to_one(empty_set) ),
    introduced(definition,[new_symbols(definition,[sQ7_spl])],[split_symbol_definition]) ).

fof(f147,plain,
    ( sQ7_spl
    | ~ sQ6_spl ),
    inference(split_clause,[status(thm)],[f139,f141,f144]) ).

fof(f148,plain,
    ( one_to_one(sK5_skl)
    | ~ relation(sK5_skl) ),
    inference(resolution,[status(thm)],[f85,f138]) ).

fof(f150,definition,
    ( sQ8_spl
  <=> relation(sK5_skl) ),
    introduced(definition,[new_symbols(definition,[sQ8_spl])],[split_symbol_definition]) ).

fof(f152,plain,
    ( sQ8_spl
    | ~ relation(sK5_skl) ),
    inference(component_clause,[status(thm)],[f150]) ).

fof(f153,definition,
    ( sQ9_spl
  <=> one_to_one(sK5_skl) ),
    introduced(definition,[new_symbols(definition,[sQ9_spl])],[split_symbol_definition]) ).

fof(f156,plain,
    ( sQ9_spl
    | ~ sQ8_spl ),
    inference(split_clause,[status(thm)],[f148,f150,f153]) ).

fof(f157,plain,
    ( one_to_one(sK6_skl)
    | ~ relation(sK6_skl) ),
    inference(resolution,[status(thm)],[f88,f138]) ).

fof(f159,definition,
    ( sQ10_spl
  <=> relation(sK6_skl) ),
    introduced(definition,[new_symbols(definition,[sQ10_spl])],[split_symbol_definition]) ).

fof(f161,plain,
    ( sQ10_spl
    | ~ relation(sK6_skl) ),
    inference(component_clause,[status(thm)],[f159]) ).

fof(f162,definition,
    ( sQ11_spl
  <=> one_to_one(sK6_skl) ),
    introduced(definition,[new_symbols(definition,[sQ11_spl])],[split_symbol_definition]) ).

fof(f165,plain,
    ( sQ11_spl
    | ~ sQ10_spl ),
    inference(split_clause,[status(thm)],[f157,f159,f162]) ).

fof(f166,plain,
    ( sQ10_spl
    | $false ),
    inference(forward_subsumption_resolution,[status(thm)],[f161,f87]) ).

fof(f167,plain,
    sQ10_spl,
    inference(contradiction_clause,[status(thm)],[f166]) ).

fof(f176,plain,
    ! [X0] :
      ( sQ3_spl
      | ~ in(sK3_skl,X0)
      | ~ is_reflexive_in(sK2_skl,X0)
      | ~ relation(sK2_skl) ),
    inference(resolution,[status(thm)],[f52,f122]) ).

fof(f179,definition,
    ( sQ12_spl
  <=> relation(sK2_skl) ),
    introduced(definition,[new_symbols(definition,[sQ12_spl])],[split_symbol_definition]) ).

fof(f181,plain,
    ( sQ12_spl
    | ~ relation(sK2_skl) ),
    inference(component_clause,[status(thm)],[f179]) ).

fof(f182,definition,
    ! [X0] :
      ( sQ13_spl
    <=> ( ~ in(sK3_skl,X0)
        | ~ is_reflexive_in(sK2_skl,X0) ) ),
    introduced(definition,[new_symbols(definition,[sQ13_spl])],[split_symbol_definition]) ).

fof(f183,plain,
    ! [X0] :
      ( ~ sQ13_spl
      | ~ in(sK3_skl,X0)
      | ~ is_reflexive_in(sK2_skl,X0) ),
    inference(component_clause,[status(thm)],[f182]) ).

fof(f185,plain,
    ( sQ3_spl
    | sQ13_spl
    | ~ sQ12_spl ),
    inference(split_clause,[status(thm)],[f176,f179,f182,f120]) ).

fof(f186,plain,
    ( sQ12_spl
    | $false ),
    inference(forward_subsumption_resolution,[status(thm)],[f181,f77]) ).

fof(f187,plain,
    sQ12_spl,
    inference(contradiction_clause,[status(thm)],[f186]) ).

fof(f188,plain,
    ( ~ sQ2_spl
    | ~ sQ13_spl
    | ~ is_reflexive_in(sK2_skl,relation_field(sK2_skl)) ),
    inference(resolution,[status(thm)],[f183,f117]) ).

fof(f189,plain,
    ( ~ sQ2_spl
    | ~ sQ13_spl
    | ~ reflexive(sK2_skl)
    | ~ relation(sK2_skl) ),
    inference(resolution,[status(thm)],[f188,f60]) ).

fof(f190,plain,
    ( ~ sQ2_spl
    | ~ sQ13_spl
    | ~ sQ0_spl
    | ~ sQ12_spl ),
    inference(split_clause,[status(thm)],[f189,f179,f109,f182,f116]) ).

fof(f233,plain,
    sK6_skl = empty_set,
    inference(resolution,[status(thm)],[f102,f88]) ).

fof(f234,plain,
    sK5_skl = empty_set,
    inference(resolution,[status(thm)],[f102,f85]) ).

fof(f238,plain,
    ( sQ6_spl
    | ~ relation(sK6_skl) ),
    inference(backward_demodulation,[status(thm)],[f233,f143]) ).

fof(f241,plain,
    ( sQ6_spl
    | ~ sQ10_spl ),
    inference(split_clause,[status(thm)],[f238,f159,f141]) ).

fof(f244,plain,
    ( sQ8_spl
    | ~ relation(sK6_skl) ),
    inference(backward_demodulation,[status(thm)],[f247,f152]) ).

fof(f247,plain,
    sK5_skl = sK6_skl,
    inference(forward_demodulation,[status(thm)],[f233,f234]) ).

fof(f248,plain,
    ( sQ8_spl
    | ~ sQ10_spl ),
    inference(split_clause,[status(thm)],[f244,f159,f150]) ).

fof(f276,plain,
    ! [X0] :
      ( ~ sQ1_spl
      | ~ in(sK0_skl(X0,sK2_skl),relation_field(sK2_skl))
      | is_reflexive_in(sK2_skl,X0)
      | ~ relation(sK2_skl) ),
    inference(resolution,[status(thm)],[f54,f113]) ).

fof(f278,definition,
    ! [X0] :
      ( sQ18_spl
    <=> ( ~ in(sK0_skl(X0,sK2_skl),relation_field(sK2_skl))
        | is_reflexive_in(sK2_skl,X0) ) ),
    introduced(definition,[new_symbols(definition,[sQ18_spl])],[split_symbol_definition]) ).

fof(f279,plain,
    ! [X0] :
      ( ~ sQ18_spl
      | ~ in(sK0_skl(X0,sK2_skl),relation_field(sK2_skl))
      | is_reflexive_in(sK2_skl,X0) ),
    inference(component_clause,[status(thm)],[f278]) ).

fof(f281,plain,
    ( ~ sQ1_spl
    | sQ18_spl
    | ~ sQ12_spl ),
    inference(split_clause,[status(thm)],[f276,f179,f278,f112]) ).

fof(f290,plain,
    ( ~ sQ18_spl
    | is_reflexive_in(sK2_skl,relation_field(sK2_skl))
    | ~ relation(sK2_skl)
    | is_reflexive_in(sK2_skl,relation_field(sK2_skl)) ),
    inference(resolution,[status(thm)],[f279,f53]) ).

fof(f291,definition,
    ( sQ19_spl
  <=> is_reflexive_in(sK2_skl,relation_field(sK2_skl)) ),
    introduced(definition,[new_symbols(definition,[sQ19_spl])],[split_symbol_definition]) ).

fof(f292,plain,
    ( ~ sQ19_spl
    | is_reflexive_in(sK2_skl,relation_field(sK2_skl)) ),
    inference(component_clause,[status(thm)],[f291]) ).

fof(f294,plain,
    ( ~ sQ18_spl
    | ~ sQ12_spl
    | sQ19_spl ),
    inference(split_clause,[status(thm)],[f290,f291,f179,f278]) ).

fof(f295,plain,
    ( ~ sQ19_spl
    | reflexive(sK2_skl)
    | ~ relation(sK2_skl) ),
    inference(resolution,[status(thm)],[f292,f61]) ).

fof(f297,plain,
    ( ~ sQ19_spl
    | sQ0_spl
    | ~ sQ12_spl ),
    inference(split_clause,[status(thm)],[f295,f179,f109,f291]) ).

fof(f299,plain,
    $false,
    inference(sat_refutation,[status(thm)],[f115,f119,f123,f147,f156,f165,f167,f185,f187,f190,f241,f248,f281,f294,f297]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : SEU239+1 : TPTP v9.3.1. Released v3.3.0.
% 0.00/0.04  % Command  : drodi -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.11/0.40  % Computer : n005.cluster.edu
% 0.11/0.40  % Model    : x86_64 x86_64
% 0.11/0.40  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.40  % Memory   : 8046.5625MB
% 0.11/0.40  % OS       : Linux 6.8.0-71-generic
% 0.11/0.40  % CPULimit : 300
% 0.11/0.40  % WCLimit  : 300
% 0.11/0.40  % DateTime : Mon Sep 21 06:02:03 UTC 2026
% 0.11/0.40  % CPUTime  : 
% 0.11/0.41  % Drodi V4.1.1
% 0.11/0.43  % Refutation found
% 0.11/0.43  % SZS status Theorem for theBenchmark: Theorem is valid
% 0.11/0.43  % SZS output start CNFRefutation for theBenchmark
% See solution above
% 0.11/0.46  % Elapsed time: 0.058181 seconds
% 0.11/0.46  % CPU time: 0.147009 seconds
% 0.11/0.46  % Total memory used: 102.580 MB
% 0.11/0.46  % Net memory used: 102.465 MB
%------------------------------------------------------------------------------