TSTP Solution File: GEO232+3 by Bliksem---1.12

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Bliksem---1.12
% Problem  : GEO232+3 : TPTP v8.1.0. Released v4.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : bliksem %s

% Computer : n032.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  : 0s
% DateTime : Sat Jul 16 02:53:06 EDT 2022

% Result   : Theorem 0.47s 0.89s
% Output   : Refutation 0.47s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.02/0.09  % Problem  : GEO232+3 : TPTP v8.1.0. Released v4.0.0.
% 0.02/0.09  % Command  : bliksem %s
% 0.09/0.28  % Computer : n032.cluster.edu
% 0.09/0.28  % Model    : x86_64 x86_64
% 0.09/0.28  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/0.28  % Memory   : 8042.1875MB
% 0.09/0.28  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.09/0.28  % CPULimit : 300
% 0.09/0.28  % DateTime : Fri Jun 17 22:25:16 EDT 2022
% 0.09/0.28  % CPUTime  : 
% 0.47/0.89  *** allocated 10000 integers for termspace/termends
% 0.47/0.89  *** allocated 10000 integers for clauses
% 0.47/0.89  *** allocated 10000 integers for justifications
% 0.47/0.89  Bliksem 1.12
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Automatic Strategy Selection
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Clauses:
% 0.47/0.89  
% 0.47/0.89  { ! unequally_directed_opposite_lines( X, Y ), unequally_directed_lines( X
% 0.47/0.89    , reverse_line( Y ) ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, reverse_line( Y ) ), 
% 0.47/0.89    unequally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  { ! right_apart_point( X, Y ), left_apart_point( X, reverse_line( Y ) ) }.
% 0.47/0.89  { ! left_apart_point( X, reverse_line( Y ) ), right_apart_point( X, Y ) }.
% 0.47/0.89  { ! right_convergent_lines( X, Y ), left_convergent_lines( X, reverse_line
% 0.47/0.89    ( Y ) ) }.
% 0.47/0.89  { ! left_convergent_lines( X, reverse_line( Y ) ), right_convergent_lines( 
% 0.47/0.89    X, Y ) }.
% 0.47/0.89  { ! equally_directed_lines( X, Y ), ! unequally_directed_lines( X, Y ) }.
% 0.47/0.89  { unequally_directed_lines( X, Y ), equally_directed_lines( X, Y ) }.
% 0.47/0.89  { ! equally_directed_opposite_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  { unequally_directed_opposite_lines( X, Y ), 
% 0.47/0.89    equally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  { ! apart_point_and_line( X, Y ), left_apart_point( X, Y ), 
% 0.47/0.89    right_apart_point( X, Y ) }.
% 0.47/0.89  { ! left_apart_point( X, Y ), apart_point_and_line( X, Y ) }.
% 0.47/0.89  { ! right_apart_point( X, Y ), apart_point_and_line( X, Y ) }.
% 0.47/0.89  { ! convergent_lines( X, Y ), unequally_directed_lines( X, Y ) }.
% 0.47/0.89  { ! convergent_lines( X, Y ), unequally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), ! unequally_directed_opposite_lines( 
% 0.47/0.89    X, Y ), convergent_lines( X, Y ) }.
% 0.47/0.89  { ! divides_points( Z, X, Y ), alpha1( X, Y, Z ), alpha4( X, Y, Z ) }.
% 0.47/0.89  { ! alpha1( X, Y, Z ), divides_points( Z, X, Y ) }.
% 0.47/0.89  { ! alpha4( X, Y, Z ), divides_points( Z, X, Y ) }.
% 0.47/0.89  { ! alpha4( X, Y, Z ), right_apart_point( X, Z ) }.
% 0.47/0.89  { ! alpha4( X, Y, Z ), left_apart_point( Y, Z ) }.
% 0.47/0.89  { ! right_apart_point( X, Z ), ! left_apart_point( Y, Z ), alpha4( X, Y, Z
% 0.47/0.89     ) }.
% 0.47/0.89  { ! alpha1( X, Y, Z ), left_apart_point( X, Z ) }.
% 0.47/0.89  { ! alpha1( X, Y, Z ), right_apart_point( Y, Z ) }.
% 0.47/0.89  { ! left_apart_point( X, Z ), ! right_apart_point( Y, Z ), alpha1( X, Y, Z
% 0.47/0.89     ) }.
% 0.47/0.89  { ! before_on_line( X, Y, Z ), distinct_points( Y, Z ) }.
% 0.47/0.89  { ! before_on_line( X, Y, Z ), alpha2( X, Y, Z ) }.
% 0.47/0.89  { ! distinct_points( Y, Z ), ! alpha2( X, Y, Z ), before_on_line( X, Y, Z )
% 0.47/0.89     }.
% 0.47/0.89  { ! alpha2( X, Y, Z ), incident_point_and_line( Y, X ) }.
% 0.47/0.89  { ! alpha2( X, Y, Z ), alpha5( X, Y, Z ) }.
% 0.47/0.89  { ! incident_point_and_line( Y, X ), ! alpha5( X, Y, Z ), alpha2( X, Y, Z )
% 0.47/0.89     }.
% 0.47/0.89  { ! alpha5( X, Y, Z ), incident_point_and_line( Z, X ) }.
% 0.47/0.89  { ! alpha5( X, Y, Z ), equally_directed_lines( X, line_connecting( Y, Z ) )
% 0.47/0.89     }.
% 0.47/0.89  { ! incident_point_and_line( Z, X ), ! equally_directed_lines( X, 
% 0.47/0.89    line_connecting( Y, Z ) ), alpha5( X, Y, Z ) }.
% 0.47/0.89  { ! between_on_line( X, Y, Z, T ), alpha3( X, Y, Z, T ), alpha6( X, Y, Z, T
% 0.47/0.89     ) }.
% 0.47/0.89  { ! alpha3( X, Y, Z, T ), between_on_line( X, Y, Z, T ) }.
% 0.47/0.89  { ! alpha6( X, Y, Z, T ), between_on_line( X, Y, Z, T ) }.
% 0.47/0.89  { ! alpha6( X, Y, Z, T ), before_on_line( X, T, Z ) }.
% 0.47/0.89  { ! alpha6( X, Y, Z, T ), before_on_line( X, Z, Y ) }.
% 0.47/0.89  { ! before_on_line( X, T, Z ), ! before_on_line( X, Z, Y ), alpha6( X, Y, Z
% 0.47/0.89    , T ) }.
% 0.47/0.89  { ! alpha3( X, Y, Z, T ), before_on_line( X, Y, Z ) }.
% 0.47/0.89  { ! alpha3( X, Y, Z, T ), before_on_line( X, Z, T ) }.
% 0.47/0.89  { ! before_on_line( X, Y, Z ), ! before_on_line( X, Z, T ), alpha3( X, Y, Z
% 0.47/0.89    , T ) }.
% 0.47/0.89  { ! distinct_points( X, X ) }.
% 0.47/0.89  { ! distinct_points( X, Y ), distinct_points( X, Z ), distinct_points( Y, Z
% 0.47/0.89     ) }.
% 0.47/0.89  { ! distinct_lines( X, X ) }.
% 0.47/0.89  { ! distinct_lines( X, Y ), distinct_lines( X, Z ), distinct_lines( Y, Z )
% 0.47/0.89     }.
% 0.47/0.89  { equally_directed_lines( X, X ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), unequally_directed_lines( X, Z ), 
% 0.47/0.89    unequally_directed_lines( Y, Z ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), alpha7( X, Z ), unequally_directed_lines( Y, Z ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), alpha7( X, Z ), unequally_directed_lines( Y, 
% 0.47/0.89    reverse_line( Z ) ) }.
% 0.47/0.89  { ! alpha7( X, Y ), unequally_directed_lines( X, Y ) }.
% 0.47/0.89  { ! alpha7( X, Y ), unequally_directed_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), alpha7( X, Y ) }.
% 0.47/0.89  { unequally_directed_lines( X, Y ), unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), left_convergent_lines( X, Y ), left_convergent_lines
% 0.47/0.89    ( X, reverse_line( Y ) ) }.
% 0.47/0.89  { ! left_apart_point( X, Y ) }.
% 0.47/0.89  { ! left_apart_point( X, reverse_line( Y ) ) }.
% 0.47/0.89  { ! left_convergent_lines( X, Y ) }.
% 0.47/0.89  { ! left_convergent_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  { ! point( X ), ! point( Y ), ! distinct_points( X, Y ), line( 
% 0.47/0.89    line_connecting( X, Y ) ) }.
% 0.47/0.89  { ! line( X ), ! line( Y ), ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ), point( 
% 0.47/0.89    intersection_point( X, Y ) ) }.
% 0.47/0.89  { ! point( Y ), ! line( X ), line( parallel_through_point( X, Y ) ) }.
% 0.47/0.89  { ! line( X ), line( reverse_line( X ) ) }.
% 0.47/0.89  { ! distinct_points( X, Y ), ! apart_point_and_line( X, line_connecting( X
% 0.47/0.89    , Y ) ) }.
% 0.47/0.89  { ! distinct_points( X, Y ), ! apart_point_and_line( Y, line_connecting( X
% 0.47/0.89    , Y ) ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), ! apart_point_and_line( intersection_point( X, Y ), 
% 0.47/0.89    X ) }.
% 0.47/0.89  { ! unequally_directed_lines( X, Y ), ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), ! apart_point_and_line( intersection_point( X, Y ), 
% 0.47/0.89    Y ) }.
% 0.47/0.89  { ! apart_point_and_line( X, parallel_through_point( Y, X ) ) }.
% 0.47/0.89  { ! distinct_lines( X, reverse_line( X ) ) }.
% 0.47/0.89  { ! distinct_points( X, Y ), equally_directed_lines( line_connecting( X, Y
% 0.47/0.89     ), reverse_line( line_connecting( Y, X ) ) ) }.
% 0.47/0.89  { equally_directed_lines( parallel_through_point( Y, X ), Y ) }.
% 0.47/0.89  { ! distinct_points( X, Y ), ! distinct_lines( Z, T ), left_apart_point( X
% 0.47/0.89    , Z ), left_apart_point( Y, Z ), left_apart_point( X, T ), 
% 0.47/0.89    left_apart_point( Y, T ), left_apart_point( X, reverse_line( Z ) ), 
% 0.47/0.89    left_apart_point( Y, reverse_line( Z ) ), left_apart_point( X, 
% 0.47/0.89    reverse_line( T ) ), left_apart_point( Y, reverse_line( T ) ) }.
% 0.47/0.89  { ! distinct_points( X, Y ), ! left_apart_point( X, Z ), left_apart_point( 
% 0.47/0.89    Y, Z ), left_convergent_lines( line_connecting( X, Y ), Z ) }.
% 0.47/0.89  { ! left_apart_point( X, Y ), distinct_points( X, Z ), left_apart_point( Z
% 0.47/0.89    , Y ) }.
% 0.47/0.89  { ! left_apart_point( X, Y ), ! unequally_directed_lines( Y, Z ), 
% 0.47/0.89    distinct_lines( Y, Z ), left_apart_point( X, reverse_line( Z ) ) }.
% 0.47/0.89  { ! left_convergent_lines( X, Y ), unequally_directed_lines( Y, Z ), 
% 0.47/0.89    left_convergent_lines( X, Z ) }.
% 0.47/0.89  { ! unequally_directed_opposite_lines( skol1, skol1 ) }.
% 0.47/0.89  
% 0.47/0.89  percentage equality = 0.000000, percentage horn = 0.819444
% 0.47/0.89  This a non-horn, non-equality problem
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Options Used:
% 0.47/0.89  
% 0.47/0.89  useres =            1
% 0.47/0.89  useparamod =        0
% 0.47/0.89  useeqrefl =         0
% 0.47/0.89  useeqfact =         0
% 0.47/0.89  usefactor =         1
% 0.47/0.89  usesimpsplitting =  0
% 0.47/0.89  usesimpdemod =      0
% 0.47/0.89  usesimpres =        3
% 0.47/0.89  
% 0.47/0.89  resimpinuse      =  1000
% 0.47/0.89  resimpclauses =     20000
% 0.47/0.89  substype =          standard
% 0.47/0.89  backwardsubs =      1
% 0.47/0.89  selectoldest =      5
% 0.47/0.89  
% 0.47/0.89  litorderings [0] =  split
% 0.47/0.89  litorderings [1] =  liftord
% 0.47/0.89  
% 0.47/0.89  termordering =      none
% 0.47/0.89  
% 0.47/0.89  litapriori =        1
% 0.47/0.89  termapriori =       0
% 0.47/0.89  litaposteriori =    0
% 0.47/0.89  termaposteriori =   0
% 0.47/0.89  demodaposteriori =  0
% 0.47/0.89  ordereqreflfact =   0
% 0.47/0.89  
% 0.47/0.89  litselect =         none
% 0.47/0.89  
% 0.47/0.89  maxweight =         15
% 0.47/0.89  maxdepth =          30000
% 0.47/0.89  maxlength =         115
% 0.47/0.89  maxnrvars =         195
% 0.47/0.89  excuselevel =       1
% 0.47/0.89  increasemaxweight = 1
% 0.47/0.89  
% 0.47/0.89  maxselected =       10000000
% 0.47/0.89  maxnrclauses =      10000000
% 0.47/0.89  
% 0.47/0.89  showgenerated =    0
% 0.47/0.89  showkept =         0
% 0.47/0.89  showselected =     0
% 0.47/0.89  showdeleted =      0
% 0.47/0.89  showresimp =       1
% 0.47/0.89  showstatus =       2000
% 0.47/0.89  
% 0.47/0.89  prologoutput =     0
% 0.47/0.89  nrgoals =          5000000
% 0.47/0.89  totalproof =       1
% 0.47/0.89  
% 0.47/0.89  Symbols occurring in the translation:
% 0.47/0.89  
% 0.47/0.89  {}  [0, 0]      (w:1, o:2, a:1, s:1, b:0), 
% 0.47/0.89  .  [1, 2]      (w:1, o:23, a:1, s:1, b:0), 
% 0.47/0.89  !  [4, 1]      (w:0, o:15, a:1, s:1, b:0), 
% 0.47/0.89  =  [13, 2]      (w:1, o:0, a:0, s:1, b:0), 
% 0.47/0.89  ==>  [14, 2]      (w:1, o:0, a:0, s:1, b:0), 
% 0.47/0.89  unequally_directed_opposite_lines  [37, 2]      (w:1, o:47, a:1, s:1, b:0)
% 0.47/0.89    , 
% 0.47/0.89  reverse_line  [38, 1]      (w:1, o:20, a:1, s:1, b:0), 
% 0.47/0.89  unequally_directed_lines  [39, 2]      (w:1, o:48, a:1, s:1, b:0), 
% 0.47/0.89  right_apart_point  [40, 2]      (w:1, o:49, a:1, s:1, b:0), 
% 0.47/0.89  left_apart_point  [41, 2]      (w:1, o:50, a:1, s:1, b:0), 
% 0.47/0.89  right_convergent_lines  [42, 2]      (w:1, o:51, a:1, s:1, b:0), 
% 0.47/0.89  left_convergent_lines  [43, 2]      (w:1, o:52, a:1, s:1, b:0), 
% 0.47/0.89  equally_directed_lines  [44, 2]      (w:1, o:55, a:1, s:1, b:0), 
% 0.47/0.89  equally_directed_opposite_lines  [45, 2]      (w:1, o:56, a:1, s:1, b:0), 
% 0.47/0.89  apart_point_and_line  [48, 2]      (w:1, o:57, a:1, s:1, b:0), 
% 0.47/0.89  convergent_lines  [50, 2]      (w:1, o:58, a:1, s:1, b:0), 
% 0.47/0.89  divides_points  [52, 3]      (w:1, o:64, a:1, s:1, b:0), 
% 0.47/0.89  before_on_line  [53, 3]      (w:1, o:69, a:1, s:1, b:0), 
% 0.47/0.89  distinct_points  [54, 2]      (w:1, o:53, a:1, s:1, b:0), 
% 0.47/0.89  incident_point_and_line  [55, 2]      (w:1, o:59, a:1, s:1, b:0), 
% 0.47/0.89  line_connecting  [56, 2]      (w:1, o:60, a:1, s:1, b:0), 
% 0.47/0.89  between_on_line  [58, 4]      (w:1, o:72, a:1, s:1, b:0), 
% 0.47/0.89  distinct_lines  [59, 2]      (w:1, o:54, a:1, s:1, b:0), 
% 0.47/0.89  point  [61, 1]      (w:1, o:21, a:1, s:1, b:0), 
% 0.47/0.89  line  [62, 1]      (w:1, o:22, a:1, s:1, b:0), 
% 0.47/0.89  intersection_point  [63, 2]      (w:1, o:61, a:1, s:1, b:0), 
% 0.47/0.89  parallel_through_point  [64, 2]      (w:1, o:62, a:1, s:1, b:0), 
% 0.47/0.89  alpha1  [65, 3]      (w:1, o:65, a:1, s:1, b:0), 
% 0.47/0.89  alpha2  [66, 3]      (w:1, o:66, a:1, s:1, b:0), 
% 0.47/0.89  alpha3  [67, 4]      (w:1, o:70, a:1, s:1, b:0), 
% 0.47/0.89  alpha4  [68, 3]      (w:1, o:67, a:1, s:1, b:0), 
% 0.47/0.89  alpha5  [69, 3]      (w:1, o:68, a:1, s:1, b:0), 
% 0.47/0.89  alpha6  [70, 4]      (w:1, o:71, a:1, s:1, b:0), 
% 0.47/0.89  alpha7  [71, 2]      (w:1, o:63, a:1, s:1, b:0), 
% 0.47/0.89  skol1  [72, 0]      (w:1, o:14, a:1, s:1, b:0).
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Starting Search:
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Bliksems!, er is een bewijs:
% 0.47/0.89  % SZS status Theorem
% 0.47/0.89  % SZS output start Refutation
% 0.47/0.89  
% 0.47/0.89  (1) {G0,W7,D3,L2,V2,M1} I { unequally_directed_opposite_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  (6) {G0,W6,D2,L2,V2,M1} I { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    equally_directed_lines( X, Y ) }.
% 0.47/0.89  (47) {G0,W3,D2,L1,V1,M1} I { equally_directed_lines( X, X ) }.
% 0.47/0.89  (54) {G0,W7,D3,L2,V2,M2} I { unequally_directed_lines( X, reverse_line( Y )
% 0.47/0.89     ), unequally_directed_lines( X, Y ) }.
% 0.47/0.89  (71) {G0,W3,D2,L1,V0,M1} I { ! unequally_directed_opposite_lines( skol1, 
% 0.47/0.89    skol1 ) }.
% 0.47/0.89  (83) {G1,W3,D2,L1,V1,M1} R(6,47) { ! unequally_directed_lines( X, X ) }.
% 0.47/0.89  (95) {G2,W4,D3,L1,V1,M1} R(54,83) { unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( X ) ) }.
% 0.47/0.89  (99) {G3,W3,D2,L1,V1,M1} R(95,1) { unequally_directed_opposite_lines( X, X
% 0.47/0.89     ) }.
% 0.47/0.89  (100) {G4,W0,D0,L0,V0,M0} R(99,71) {  }.
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  % SZS output end Refutation
% 0.47/0.89  found a proof!
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Unprocessed initial clauses:
% 0.47/0.89  
% 0.47/0.89  (102) {G0,W7,D3,L2,V2,M2}  { ! unequally_directed_opposite_lines( X, Y ), 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  (103) {G0,W7,D3,L2,V2,M2}  { ! unequally_directed_lines( X, reverse_line( Y
% 0.47/0.89     ) ), unequally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  (104) {G0,W7,D3,L2,V2,M2}  { ! right_apart_point( X, Y ), left_apart_point
% 0.47/0.89    ( X, reverse_line( Y ) ) }.
% 0.47/0.89  (105) {G0,W7,D3,L2,V2,M2}  { ! left_apart_point( X, reverse_line( Y ) ), 
% 0.47/0.89    right_apart_point( X, Y ) }.
% 0.47/0.89  (106) {G0,W7,D3,L2,V2,M2}  { ! right_convergent_lines( X, Y ), 
% 0.47/0.89    left_convergent_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  (107) {G0,W7,D3,L2,V2,M2}  { ! left_convergent_lines( X, reverse_line( Y )
% 0.47/0.89     ), right_convergent_lines( X, Y ) }.
% 0.47/0.89  (108) {G0,W6,D2,L2,V2,M2}  { ! equally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, Y ) }.
% 0.47/0.89  (109) {G0,W6,D2,L2,V2,M2}  { unequally_directed_lines( X, Y ), 
% 0.47/0.89    equally_directed_lines( X, Y ) }.
% 0.47/0.89  (110) {G0,W6,D2,L2,V2,M2}  { ! equally_directed_opposite_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  (111) {G0,W6,D2,L2,V2,M2}  { unequally_directed_opposite_lines( X, Y ), 
% 0.47/0.89    equally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  (112) {G0,W9,D2,L3,V2,M3}  { ! apart_point_and_line( X, Y ), 
% 0.47/0.89    left_apart_point( X, Y ), right_apart_point( X, Y ) }.
% 0.47/0.89  (113) {G0,W6,D2,L2,V2,M2}  { ! left_apart_point( X, Y ), 
% 0.47/0.89    apart_point_and_line( X, Y ) }.
% 0.47/0.89  (114) {G0,W6,D2,L2,V2,M2}  { ! right_apart_point( X, Y ), 
% 0.47/0.89    apart_point_and_line( X, Y ) }.
% 0.47/0.89  (115) {G0,W6,D2,L2,V2,M2}  { ! convergent_lines( X, Y ), 
% 0.47/0.89    unequally_directed_lines( X, Y ) }.
% 0.47/0.89  (116) {G0,W6,D2,L2,V2,M2}  { ! convergent_lines( X, Y ), 
% 0.47/0.89    unequally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  (117) {G0,W9,D2,L3,V2,M3}  { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_opposite_lines( X, Y ), convergent_lines( X, Y ) }.
% 0.47/0.89  (118) {G0,W12,D2,L3,V3,M3}  { ! divides_points( Z, X, Y ), alpha1( X, Y, Z
% 0.47/0.89     ), alpha4( X, Y, Z ) }.
% 0.47/0.89  (119) {G0,W8,D2,L2,V3,M2}  { ! alpha1( X, Y, Z ), divides_points( Z, X, Y )
% 0.47/0.89     }.
% 0.47/0.89  (120) {G0,W8,D2,L2,V3,M2}  { ! alpha4( X, Y, Z ), divides_points( Z, X, Y )
% 0.47/0.89     }.
% 0.47/0.89  (121) {G0,W7,D2,L2,V3,M2}  { ! alpha4( X, Y, Z ), right_apart_point( X, Z )
% 0.47/0.89     }.
% 0.47/0.89  (122) {G0,W7,D2,L2,V3,M2}  { ! alpha4( X, Y, Z ), left_apart_point( Y, Z )
% 0.47/0.89     }.
% 0.47/0.89  (123) {G0,W10,D2,L3,V3,M3}  { ! right_apart_point( X, Z ), ! 
% 0.47/0.89    left_apart_point( Y, Z ), alpha4( X, Y, Z ) }.
% 0.47/0.89  (124) {G0,W7,D2,L2,V3,M2}  { ! alpha1( X, Y, Z ), left_apart_point( X, Z )
% 0.47/0.89     }.
% 0.47/0.89  (125) {G0,W7,D2,L2,V3,M2}  { ! alpha1( X, Y, Z ), right_apart_point( Y, Z )
% 0.47/0.89     }.
% 0.47/0.89  (126) {G0,W10,D2,L3,V3,M3}  { ! left_apart_point( X, Z ), ! 
% 0.47/0.89    right_apart_point( Y, Z ), alpha1( X, Y, Z ) }.
% 0.47/0.89  (127) {G0,W7,D2,L2,V3,M2}  { ! before_on_line( X, Y, Z ), distinct_points( 
% 0.47/0.89    Y, Z ) }.
% 0.47/0.89  (128) {G0,W8,D2,L2,V3,M2}  { ! before_on_line( X, Y, Z ), alpha2( X, Y, Z )
% 0.47/0.89     }.
% 0.47/0.89  (129) {G0,W11,D2,L3,V3,M3}  { ! distinct_points( Y, Z ), ! alpha2( X, Y, Z
% 0.47/0.89     ), before_on_line( X, Y, Z ) }.
% 0.47/0.89  (130) {G0,W7,D2,L2,V3,M2}  { ! alpha2( X, Y, Z ), incident_point_and_line( 
% 0.47/0.89    Y, X ) }.
% 0.47/0.89  (131) {G0,W8,D2,L2,V3,M2}  { ! alpha2( X, Y, Z ), alpha5( X, Y, Z ) }.
% 0.47/0.89  (132) {G0,W11,D2,L3,V3,M3}  { ! incident_point_and_line( Y, X ), ! alpha5( 
% 0.47/0.89    X, Y, Z ), alpha2( X, Y, Z ) }.
% 0.47/0.89  (133) {G0,W7,D2,L2,V3,M2}  { ! alpha5( X, Y, Z ), incident_point_and_line( 
% 0.47/0.89    Z, X ) }.
% 0.47/0.89  (134) {G0,W9,D3,L2,V3,M2}  { ! alpha5( X, Y, Z ), equally_directed_lines( X
% 0.47/0.89    , line_connecting( Y, Z ) ) }.
% 0.47/0.89  (135) {G0,W12,D3,L3,V3,M3}  { ! incident_point_and_line( Z, X ), ! 
% 0.47/0.89    equally_directed_lines( X, line_connecting( Y, Z ) ), alpha5( X, Y, Z )
% 0.47/0.89     }.
% 0.47/0.89  (136) {G0,W15,D2,L3,V4,M3}  { ! between_on_line( X, Y, Z, T ), alpha3( X, Y
% 0.47/0.89    , Z, T ), alpha6( X, Y, Z, T ) }.
% 0.47/0.89  (137) {G0,W10,D2,L2,V4,M2}  { ! alpha3( X, Y, Z, T ), between_on_line( X, Y
% 0.47/0.89    , Z, T ) }.
% 0.47/0.89  (138) {G0,W10,D2,L2,V4,M2}  { ! alpha6( X, Y, Z, T ), between_on_line( X, Y
% 0.47/0.89    , Z, T ) }.
% 0.47/0.89  (139) {G0,W9,D2,L2,V4,M2}  { ! alpha6( X, Y, Z, T ), before_on_line( X, T, 
% 0.47/0.89    Z ) }.
% 0.47/0.89  (140) {G0,W9,D2,L2,V4,M2}  { ! alpha6( X, Y, Z, T ), before_on_line( X, Z, 
% 0.47/0.89    Y ) }.
% 0.47/0.89  (141) {G0,W13,D2,L3,V4,M3}  { ! before_on_line( X, T, Z ), ! before_on_line
% 0.47/0.89    ( X, Z, Y ), alpha6( X, Y, Z, T ) }.
% 0.47/0.89  (142) {G0,W9,D2,L2,V4,M2}  { ! alpha3( X, Y, Z, T ), before_on_line( X, Y, 
% 0.47/0.89    Z ) }.
% 0.47/0.89  (143) {G0,W9,D2,L2,V4,M2}  { ! alpha3( X, Y, Z, T ), before_on_line( X, Z, 
% 0.47/0.89    T ) }.
% 0.47/0.89  (144) {G0,W13,D2,L3,V4,M3}  { ! before_on_line( X, Y, Z ), ! before_on_line
% 0.47/0.89    ( X, Z, T ), alpha3( X, Y, Z, T ) }.
% 0.47/0.89  (145) {G0,W3,D2,L1,V1,M1}  { ! distinct_points( X, X ) }.
% 0.47/0.89  (146) {G0,W9,D2,L3,V3,M3}  { ! distinct_points( X, Y ), distinct_points( X
% 0.47/0.89    , Z ), distinct_points( Y, Z ) }.
% 0.47/0.89  (147) {G0,W3,D2,L1,V1,M1}  { ! distinct_lines( X, X ) }.
% 0.47/0.89  (148) {G0,W9,D2,L3,V3,M3}  { ! distinct_lines( X, Y ), distinct_lines( X, Z
% 0.47/0.89     ), distinct_lines( Y, Z ) }.
% 0.47/0.89  (149) {G0,W3,D2,L1,V1,M1}  { equally_directed_lines( X, X ) }.
% 0.47/0.89  (150) {G0,W9,D2,L3,V3,M3}  { ! unequally_directed_lines( X, Y ), 
% 0.47/0.89    unequally_directed_lines( X, Z ), unequally_directed_lines( Y, Z ) }.
% 0.47/0.89  (151) {G0,W13,D3,L4,V3,M4}  { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ), alpha7( X, Z ), 
% 0.47/0.89    unequally_directed_lines( Y, Z ) }.
% 0.47/0.89  (152) {G0,W14,D3,L4,V3,M4}  { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ), alpha7( X, Z ), 
% 0.47/0.89    unequally_directed_lines( Y, reverse_line( Z ) ) }.
% 0.47/0.89  (153) {G0,W6,D2,L2,V2,M2}  { ! alpha7( X, Y ), unequally_directed_lines( X
% 0.47/0.89    , Y ) }.
% 0.47/0.89  (154) {G0,W7,D3,L2,V2,M2}  { ! alpha7( X, Y ), unequally_directed_lines( X
% 0.47/0.89    , reverse_line( Y ) ) }.
% 0.47/0.89  (155) {G0,W10,D3,L3,V2,M3}  { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ), alpha7( X, Y ) }.
% 0.47/0.89  (156) {G0,W7,D3,L2,V2,M2}  { unequally_directed_lines( X, Y ), 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  (157) {G0,W14,D3,L4,V2,M4}  { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ), left_convergent_lines( 
% 0.47/0.89    X, Y ), left_convergent_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  (158) {G0,W3,D2,L1,V2,M1}  { ! left_apart_point( X, Y ) }.
% 0.47/0.89  (159) {G0,W4,D3,L1,V2,M1}  { ! left_apart_point( X, reverse_line( Y ) ) }.
% 0.47/0.89  (160) {G0,W3,D2,L1,V2,M1}  { ! left_convergent_lines( X, Y ) }.
% 0.47/0.89  (161) {G0,W4,D3,L1,V2,M1}  { ! left_convergent_lines( X, reverse_line( Y )
% 0.47/0.89     ) }.
% 0.47/0.89  (162) {G0,W11,D3,L4,V2,M4}  { ! point( X ), ! point( Y ), ! distinct_points
% 0.47/0.89    ( X, Y ), line( line_connecting( X, Y ) ) }.
% 0.47/0.89  (163) {G0,W15,D3,L5,V2,M5}  { ! line( X ), ! line( Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, Y ), ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), point( intersection_point( X, Y ) ) }.
% 0.47/0.89  (164) {G0,W8,D3,L3,V2,M3}  { ! point( Y ), ! line( X ), line( 
% 0.47/0.89    parallel_through_point( X, Y ) ) }.
% 0.47/0.89  (165) {G0,W5,D3,L2,V1,M2}  { ! line( X ), line( reverse_line( X ) ) }.
% 0.47/0.89  (166) {G0,W8,D3,L2,V2,M2}  { ! distinct_points( X, Y ), ! 
% 0.47/0.89    apart_point_and_line( X, line_connecting( X, Y ) ) }.
% 0.47/0.89  (167) {G0,W8,D3,L2,V2,M2}  { ! distinct_points( X, Y ), ! 
% 0.47/0.89    apart_point_and_line( Y, line_connecting( X, Y ) ) }.
% 0.47/0.89  (168) {G0,W12,D3,L3,V2,M3}  { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ), ! apart_point_and_line
% 0.47/0.89    ( intersection_point( X, Y ), X ) }.
% 0.47/0.89  (169) {G0,W12,D3,L3,V2,M3}  { ! unequally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ), ! apart_point_and_line
% 0.47/0.89    ( intersection_point( X, Y ), Y ) }.
% 0.47/0.89  (170) {G0,W5,D3,L1,V2,M1}  { ! apart_point_and_line( X, 
% 0.47/0.89    parallel_through_point( Y, X ) ) }.
% 0.47/0.89  (171) {G0,W4,D3,L1,V1,M1}  { ! distinct_lines( X, reverse_line( X ) ) }.
% 0.47/0.89  (172) {G0,W11,D4,L2,V2,M2}  { ! distinct_points( X, Y ), 
% 0.47/0.89    equally_directed_lines( line_connecting( X, Y ), reverse_line( 
% 0.47/0.89    line_connecting( Y, X ) ) ) }.
% 0.47/0.89  (173) {G0,W5,D3,L1,V2,M1}  { equally_directed_lines( parallel_through_point
% 0.47/0.89    ( Y, X ), Y ) }.
% 0.47/0.89  (174) {G0,W34,D3,L10,V4,M10}  { ! distinct_points( X, Y ), ! distinct_lines
% 0.47/0.89    ( Z, T ), left_apart_point( X, Z ), left_apart_point( Y, Z ), 
% 0.47/0.89    left_apart_point( X, T ), left_apart_point( Y, T ), left_apart_point( X, 
% 0.47/0.89    reverse_line( Z ) ), left_apart_point( Y, reverse_line( Z ) ), 
% 0.47/0.89    left_apart_point( X, reverse_line( T ) ), left_apart_point( Y, 
% 0.47/0.89    reverse_line( T ) ) }.
% 0.47/0.89  (175) {G0,W14,D3,L4,V3,M4}  { ! distinct_points( X, Y ), ! left_apart_point
% 0.47/0.89    ( X, Z ), left_apart_point( Y, Z ), left_convergent_lines( 
% 0.47/0.89    line_connecting( X, Y ), Z ) }.
% 0.47/0.89  (176) {G0,W9,D2,L3,V3,M3}  { ! left_apart_point( X, Y ), distinct_points( X
% 0.47/0.89    , Z ), left_apart_point( Z, Y ) }.
% 0.47/0.89  (177) {G0,W13,D3,L4,V3,M4}  { ! left_apart_point( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( Y, Z ), distinct_lines( Y, Z ), 
% 0.47/0.89    left_apart_point( X, reverse_line( Z ) ) }.
% 0.47/0.89  (178) {G0,W9,D2,L3,V3,M3}  { ! left_convergent_lines( X, Y ), 
% 0.47/0.89    unequally_directed_lines( Y, Z ), left_convergent_lines( X, Z ) }.
% 0.47/0.89  (179) {G0,W3,D2,L1,V0,M1}  { ! unequally_directed_opposite_lines( skol1, 
% 0.47/0.89    skol1 ) }.
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Total Proof:
% 0.47/0.89  
% 0.47/0.89  subsumption: (1) {G0,W7,D3,L2,V2,M1} I { unequally_directed_opposite_lines
% 0.47/0.89    ( X, Y ), ! unequally_directed_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  parent0: (103) {G0,W7,D3,L2,V2,M2}  { ! unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), unequally_directed_opposite_lines( X, Y ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89     Y := Y
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 1
% 0.47/0.89     1 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (6) {G0,W6,D2,L2,V2,M1} I { ! unequally_directed_lines( X, Y )
% 0.47/0.89    , ! equally_directed_lines( X, Y ) }.
% 0.47/0.89  parent0: (108) {G0,W6,D2,L2,V2,M2}  { ! equally_directed_lines( X, Y ), ! 
% 0.47/0.89    unequally_directed_lines( X, Y ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89     Y := Y
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 1
% 0.47/0.89     1 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (47) {G0,W3,D2,L1,V1,M1} I { equally_directed_lines( X, X )
% 0.47/0.89     }.
% 0.47/0.89  parent0: (149) {G0,W3,D2,L1,V1,M1}  { equally_directed_lines( X, X ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (54) {G0,W7,D3,L2,V2,M2} I { unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), unequally_directed_lines( X, Y ) }.
% 0.47/0.89  parent0: (156) {G0,W7,D3,L2,V2,M2}  { unequally_directed_lines( X, Y ), 
% 0.47/0.89    unequally_directed_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89     Y := Y
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 1
% 0.47/0.89     1 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (71) {G0,W3,D2,L1,V0,M1} I { ! 
% 0.47/0.89    unequally_directed_opposite_lines( skol1, skol1 ) }.
% 0.47/0.89  parent0: (179) {G0,W3,D2,L1,V0,M1}  { ! unequally_directed_opposite_lines( 
% 0.47/0.89    skol1, skol1 ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  resolution: (222) {G1,W3,D2,L1,V1,M1}  { ! unequally_directed_lines( X, X )
% 0.47/0.89     }.
% 0.47/0.89  parent0[1]: (6) {G0,W6,D2,L2,V2,M1} I { ! unequally_directed_lines( X, Y )
% 0.47/0.89    , ! equally_directed_lines( X, Y ) }.
% 0.47/0.89  parent1[0]: (47) {G0,W3,D2,L1,V1,M1} I { equally_directed_lines( X, X ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89     Y := X
% 0.47/0.89  end
% 0.47/0.89  substitution1:
% 0.47/0.89     X := X
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (83) {G1,W3,D2,L1,V1,M1} R(6,47) { ! unequally_directed_lines
% 0.47/0.89    ( X, X ) }.
% 0.47/0.89  parent0: (222) {G1,W3,D2,L1,V1,M1}  { ! unequally_directed_lines( X, X )
% 0.47/0.89     }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  resolution: (224) {G1,W4,D3,L1,V1,M1}  { unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( X ) ) }.
% 0.47/0.89  parent0[0]: (83) {G1,W3,D2,L1,V1,M1} R(6,47) { ! unequally_directed_lines( 
% 0.47/0.89    X, X ) }.
% 0.47/0.89  parent1[1]: (54) {G0,W7,D3,L2,V2,M2} I { unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( Y ) ), unequally_directed_lines( X, Y ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89  end
% 0.47/0.89  substitution1:
% 0.47/0.89     X := X
% 0.47/0.89     Y := X
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (95) {G2,W4,D3,L1,V1,M1} R(54,83) { unequally_directed_lines( 
% 0.47/0.89    X, reverse_line( X ) ) }.
% 0.47/0.89  parent0: (224) {G1,W4,D3,L1,V1,M1}  { unequally_directed_lines( X, 
% 0.47/0.89    reverse_line( X ) ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  resolution: (225) {G1,W3,D2,L1,V1,M1}  { unequally_directed_opposite_lines
% 0.47/0.89    ( X, X ) }.
% 0.47/0.89  parent0[1]: (1) {G0,W7,D3,L2,V2,M1} I { unequally_directed_opposite_lines( 
% 0.47/0.89    X, Y ), ! unequally_directed_lines( X, reverse_line( Y ) ) }.
% 0.47/0.89  parent1[0]: (95) {G2,W4,D3,L1,V1,M1} R(54,83) { unequally_directed_lines( X
% 0.47/0.89    , reverse_line( X ) ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89     Y := X
% 0.47/0.89  end
% 0.47/0.89  substitution1:
% 0.47/0.89     X := X
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (99) {G3,W3,D2,L1,V1,M1} R(95,1) { 
% 0.47/0.89    unequally_directed_opposite_lines( X, X ) }.
% 0.47/0.89  parent0: (225) {G1,W3,D2,L1,V1,M1}  { unequally_directed_opposite_lines( X
% 0.47/0.89    , X ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89     X := X
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89     0 ==> 0
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  resolution: (226) {G1,W0,D0,L0,V0,M0}  {  }.
% 0.47/0.89  parent0[0]: (71) {G0,W3,D2,L1,V0,M1} I { ! 
% 0.47/0.89    unequally_directed_opposite_lines( skol1, skol1 ) }.
% 0.47/0.89  parent1[0]: (99) {G3,W3,D2,L1,V1,M1} R(95,1) { 
% 0.47/0.89    unequally_directed_opposite_lines( X, X ) }.
% 0.47/0.89  substitution0:
% 0.47/0.89  end
% 0.47/0.89  substitution1:
% 0.47/0.89     X := skol1
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  subsumption: (100) {G4,W0,D0,L0,V0,M0} R(99,71) {  }.
% 0.47/0.89  parent0: (226) {G1,W0,D0,L0,V0,M0}  {  }.
% 0.47/0.89  substitution0:
% 0.47/0.89  end
% 0.47/0.89  permutation0:
% 0.47/0.89  end
% 0.47/0.89  
% 0.47/0.89  Proof check complete!
% 0.47/0.89  
% 0.47/0.89  Memory use:
% 0.47/0.89  
% 0.47/0.89  space for terms:        2561
% 0.47/0.89  space for clauses:      5875
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  clauses generated:      142
% 0.47/0.89  clauses kept:           101
% 0.47/0.89  clauses selected:       40
% 0.47/0.89  clauses deleted:        13
% 0.47/0.89  clauses inuse deleted:  0
% 0.47/0.89  
% 0.47/0.89  subsentry:          341
% 0.47/0.89  literals s-matched: 243
% 0.47/0.89  literals matched:   193
% 0.47/0.89  full subsumption:   61
% 0.47/0.89  
% 0.47/0.89  checksum:           127514723
% 0.47/0.89  
% 0.47/0.89  
% 0.47/0.89  Bliksem ended
%------------------------------------------------------------------------------