TSTP Solution File: GRP291-1 by Prover9---1109a

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Prover9---1109a
% Problem  : GRP291-1 : TPTP v8.1.0. Released v2.5.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : tptp2X_and_run_prover9 %d %s

% Computer : n012.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  : 600s
% DateTime : Sat Jul 16 11:18:30 EDT 2022

% Result   : Unsatisfiable 62.67s 62.97s
% Output   : Refutation 62.67s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.07/0.12  % Problem  : GRP291-1 : TPTP v8.1.0. Released v2.5.0.
% 0.07/0.13  % Command  : tptp2X_and_run_prover9 %d %s
% 0.12/0.34  % Computer : n012.cluster.edu
% 0.12/0.34  % Model    : x86_64 x86_64
% 0.12/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.34  % Memory   : 8042.1875MB
% 0.12/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.12/0.34  % CPULimit : 300
% 0.12/0.34  % WCLimit  : 600
% 0.12/0.34  % DateTime : Tue Jun 14 00:15:55 EDT 2022
% 0.12/0.34  % CPUTime  : 
% 7.41/7.72  ============================== Prover9 ===============================
% 7.41/7.72  Prover9 (32) version 2009-11A, November 2009.
% 7.41/7.72  Process 30277 was started by sandbox on n012.cluster.edu,
% 7.41/7.72  Tue Jun 14 00:15:56 2022
% 7.41/7.72  The command was "/export/starexec/sandbox/solver/bin/prover9 -t 300 -f /tmp/Prover9_30123_n012.cluster.edu".
% 7.41/7.72  ============================== end of head ===========================
% 7.41/7.72  
% 7.41/7.72  ============================== INPUT =================================
% 7.41/7.72  
% 7.41/7.72  % Reading from file /tmp/Prover9_30123_n012.cluster.edu
% 7.41/7.72  
% 7.41/7.72  set(prolog_style_variables).
% 7.41/7.72  set(auto2).
% 7.41/7.72      % set(auto2) -> set(auto).
% 7.41/7.72      % set(auto) -> set(auto_inference).
% 7.41/7.72      % set(auto) -> set(auto_setup).
% 7.41/7.72      % set(auto_setup) -> set(predicate_elim).
% 7.41/7.72      % set(auto_setup) -> assign(eq_defs, unfold).
% 7.41/7.72      % set(auto) -> set(auto_limits).
% 7.41/7.72      % set(auto_limits) -> assign(max_weight, "100.000").
% 7.41/7.72      % set(auto_limits) -> assign(sos_limit, 20000).
% 7.41/7.72      % set(auto) -> set(auto_denials).
% 7.41/7.72      % set(auto) -> set(auto_process).
% 7.41/7.72      % set(auto2) -> assign(new_constants, 1).
% 7.41/7.72      % set(auto2) -> assign(fold_denial_max, 3).
% 7.41/7.72      % set(auto2) -> assign(max_weight, "200.000").
% 7.41/7.72      % set(auto2) -> assign(max_hours, 1).
% 7.41/7.72      % assign(max_hours, 1) -> assign(max_seconds, 3600).
% 7.41/7.72      % set(auto2) -> assign(max_seconds, 0).
% 7.41/7.72      % set(auto2) -> assign(max_minutes, 5).
% 7.41/7.72      % assign(max_minutes, 5) -> assign(max_seconds, 300).
% 7.41/7.72      % set(auto2) -> set(sort_initial_sos).
% 7.41/7.72      % set(auto2) -> assign(sos_limit, -1).
% 7.41/7.72      % set(auto2) -> assign(lrs_ticks, 3000).
% 7.41/7.72      % set(auto2) -> assign(max_megs, 400).
% 7.41/7.72      % set(auto2) -> assign(stats, some).
% 7.41/7.72      % set(auto2) -> clear(echo_input).
% 7.41/7.72      % set(auto2) -> set(quiet).
% 7.41/7.72      % set(auto2) -> clear(print_initial_clauses).
% 7.41/7.72      % set(auto2) -> clear(print_given).
% 7.41/7.72  assign(lrs_ticks,-1).
% 7.41/7.72  assign(sos_limit,10000).
% 7.41/7.72  assign(order,kbo).
% 7.41/7.72  set(lex_order_vars).
% 7.41/7.72  clear(print_given).
% 7.41/7.72  
% 7.41/7.72  % formulas(sos).  % not echoed (29 formulas)
% 7.41/7.72  
% 7.41/7.72  ============================== end of input ==========================
% 7.41/7.72  
% 7.41/7.72  % From the command line: assign(max_seconds, 300).
% 7.41/7.72  
% 7.41/7.72  ============================== PROCESS NON-CLAUSAL FORMULAS ==========
% 7.41/7.72  
% 7.41/7.72  % Formulas that are not ordinary clauses:
% 7.41/7.72  
% 7.41/7.72  ============================== end of process non-clausal formulas ===
% 7.41/7.72  
% 7.41/7.72  ============================== PROCESS INITIAL CLAUSES ===============
% 7.41/7.72  
% 7.41/7.72  ============================== PREDICATE ELIMINATION =================
% 7.41/7.72  
% 7.41/7.72  ============================== end predicate elimination =============
% 7.41/7.72  
% 7.41/7.72  Auto_denials:  (non-Horn, no changes).
% 7.41/7.72  
% 7.41/7.72  Term ordering decisions:
% 7.41/7.72  
% 7.41/7.72  % Assigning unary symbol inverse kb_weight 0 and highest precedence (11).
% 7.41/7.72  Function symbol KB weights:  sk_c7=1. sk_c6=1. sk_c5=1. sk_c1=1. sk_c2=1. sk_c3=1. sk_c4=1. identity=1. multiply=1. inverse=0.
% 7.41/7.72  
% 7.41/7.72  ============================== end of process initial clauses ========
% 7.41/7.72  
% 7.41/7.72  ============================== CLAUSES FOR SEARCH ====================
% 7.41/7.72  
% 7.41/7.72  ============================== end of clauses for search =============
% 7.41/7.72  
% 7.41/7.72  ============================== SEARCH ================================
% 7.41/7.72  
% 7.41/7.72  % Starting search at 0.01 seconds.
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=44.000, iters=3569
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=42.000, iters=3435
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=41.000, iters=3342
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=40.000, iters=3363
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=39.000, iters=3339
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=38.000, iters=3363
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=37.000, iters=3333
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=36.000, iters=3344
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=35.000, iters=3342
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=34.000, iters=3395
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=33.000, iters=3352
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=32.000, iters=3453
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=31.000, iters=3362
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=30.000, iters=3360
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=29.000, iters=3346
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=28.000, iters=3350
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=27.000, iters=3399
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=26.000, iters=3413
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=25.000, iters=3472
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=22.000, iters=3444
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=18.000, iters=3655
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=17.000, iters=3340
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=16.000, iters=3337
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=15.000, iters=3336
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=14.000, iters=3359
% 7.41/7.72  
% 7.41/7.72  Low Water (keep): wt=13.000, iters=3333
% 7.41/7.72  
% 7.41/7.72  Low Water (displace): id=3261, wt=49.000
% 62.67/62.97  
% 62.67/62.97  Low Water (displace): id=3909, wt=48.000
% 62.67/62.97  
% 62.67/62.97  Low Water (displace): id=4528, wt=47.000
% 62.67/62.97  
% 62.67/62.97  Low Water (displace): id=13984, wt=12.000
% 62.67/62.97  
% 62.67/62.97  Low Water (displace): id=14143, wt=11.000
% 62.67/62.97  
% 62.67/62.97  Low Water (keep): wt=12.000, iters=3333
% 62.67/62.97  
% 62.67/62.97  ============================== PROOF =================================
% 62.67/62.97  % SZS status Unsatisfiable
% 62.67/62.97  % SZS output start Refutation
% 62.67/62.97  
% 62.67/62.97  % Proof 1 at 60.28 (+ 1.71) seconds.
% 62.67/62.97  % Length of proof is 192.
% 62.67/62.97  % Level of proof is 32.
% 62.67/62.97  % Maximum clause weight is 46.000.
% 62.67/62.97  % Given clauses 4780.
% 62.67/62.97  
% 62.67/62.97  1 multiply(identity,A) = A # label(left_identity) # label(axiom).  [assumption].
% 62.67/62.97  2 multiply(inverse(A),A) = identity # label(left_inverse) # label(axiom).  [assumption].
% 62.67/62.97  3 inverse(sk_c1) = sk_c7 | inverse(sk_c3) = sk_c7 # label(prove_this_12) # label(negated_conjecture).  [assumption].
% 62.67/62.97  4 inverse(sk_c1) = sk_c7 | inverse(sk_c4) = sk_c6 # label(prove_this_14) # label(negated_conjecture).  [assumption].
% 62.67/62.97  5 inverse(sk_c2) = sk_c5 | inverse(sk_c3) = sk_c7 # label(prove_this_22) # label(negated_conjecture).  [assumption].
% 62.67/62.97  6 inverse(sk_c2) = sk_c5 | inverse(sk_c4) = sk_c6 # label(prove_this_24) # label(negated_conjecture).  [assumption].
% 62.67/62.97  7 multiply(sk_c7,sk_c6) = sk_c5 | inverse(sk_c3) = sk_c7 # label(prove_this_2) # label(negated_conjecture).  [assumption].
% 62.67/62.97  9 multiply(sk_c1,sk_c7) = sk_c6 | inverse(sk_c3) = sk_c7 # label(prove_this_7) # label(negated_conjecture).  [assumption].
% 62.67/62.97  10 multiply(sk_c1,sk_c7) = sk_c6 | inverse(sk_c4) = sk_c6 # label(prove_this_9) # label(negated_conjecture).  [assumption].
% 62.67/62.97  11 inverse(sk_c1) = sk_c7 | multiply(sk_c6,sk_c7) = sk_c5 # label(prove_this_11) # label(negated_conjecture).  [assumption].
% 62.67/62.97  12 inverse(sk_c1) = sk_c7 | multiply(sk_c3,sk_c6) = sk_c7 # label(prove_this_13) # label(negated_conjecture).  [assumption].
% 62.67/62.97  13 inverse(sk_c1) = sk_c7 | multiply(sk_c4,sk_c5) = sk_c6 # label(prove_this_15) # label(negated_conjecture).  [assumption].
% 62.67/62.97  14 multiply(sk_c2,sk_c5) = sk_c7 | inverse(sk_c3) = sk_c7 # label(prove_this_17) # label(negated_conjecture).  [assumption].
% 62.67/62.97  15 multiply(sk_c2,sk_c5) = sk_c7 | inverse(sk_c4) = sk_c6 # label(prove_this_19) # label(negated_conjecture).  [assumption].
% 62.67/62.97  16 inverse(sk_c2) = sk_c5 | multiply(sk_c6,sk_c7) = sk_c5 # label(prove_this_21) # label(negated_conjecture).  [assumption].
% 62.67/62.97  17 inverse(sk_c2) = sk_c5 | multiply(sk_c3,sk_c6) = sk_c7 # label(prove_this_23) # label(negated_conjecture).  [assumption].
% 62.67/62.97  18 inverse(sk_c2) = sk_c5 | multiply(sk_c4,sk_c5) = sk_c6 # label(prove_this_25) # label(negated_conjecture).  [assumption].
% 62.67/62.97  19 multiply(sk_c7,sk_c6) = sk_c5 | multiply(sk_c6,sk_c7) = sk_c5 # label(prove_this_1) # label(negated_conjecture).  [assumption].
% 62.67/62.97  22 multiply(sk_c1,sk_c7) = sk_c6 | multiply(sk_c6,sk_c7) = sk_c5 # label(prove_this_6) # label(negated_conjecture).  [assumption].
% 62.67/62.97  23 multiply(sk_c1,sk_c7) = sk_c6 | multiply(sk_c3,sk_c6) = sk_c7 # label(prove_this_8) # label(negated_conjecture).  [assumption].
% 62.67/62.97  24 multiply(sk_c1,sk_c7) = sk_c6 | multiply(sk_c4,sk_c5) = sk_c6 # label(prove_this_10) # label(negated_conjecture).  [assumption].
% 62.67/62.97  25 multiply(sk_c2,sk_c5) = sk_c7 | multiply(sk_c6,sk_c7) = sk_c5 # label(prove_this_16) # label(negated_conjecture).  [assumption].
% 62.67/62.97  26 multiply(sk_c2,sk_c5) = sk_c7 | multiply(sk_c3,sk_c6) = sk_c7 # label(prove_this_18) # label(negated_conjecture).  [assumption].
% 62.67/62.97  27 multiply(sk_c2,sk_c5) = sk_c7 | multiply(sk_c4,sk_c5) = sk_c6 # label(prove_this_20) # label(negated_conjecture).  [assumption].
% 62.67/62.97  28 multiply(multiply(A,B),C) = multiply(A,multiply(B,C)) # label(associativity) # label(axiom).  [assumption].
% 62.67/62.97  29 multiply(sk_c7,sk_c6) != sk_c5 | multiply(A,sk_c7) != sk_c6 | inverse(A) != sk_c7 | multiply(B,sk_c5) != sk_c7 | inverse(B) != sk_c5 | multiply(sk_c6,sk_c7) != sk_c5 | inverse(C) != sk_c7 | multiply(C,sk_c6) != sk_c7 | inverse(D) != sk_c6 | multiply(D,sk_c5) != sk_c6 # label(prove_this_26) # label(negated_conjecture).  [assumption].
% 62.67/62.97  31 inverse(sk_c1) = sk_c7 | multiply(sk_c7,sk_c3) = identity.  [para(3(b,1),2(a,1,1))].
% 62.67/62.97  32 inverse(sk_c1) = sk_c7 | multiply(sk_c6,sk_c4) = identity.  [para(4(b,1),2(a,1,1))].
% 62.67/62.97  33 inverse(sk_c2) = sk_c5 | multiply(sk_c7,sk_c3) = identity.  [para(5(b,1),2(a,1,1))].
% 62.67/62.97  34 inverse(sk_c2) = sk_c5 | multiply(sk_c6,sk_c4) = identity.  [para(6(b,1),2(a,1,1))].
% 62.67/62.97  35 multiply(inverse(A),multiply(A,B)) = B.  [para(2(a,1),28(a,1,1)),rewrite([1(2)]),flip(a)].
% 62.67/62.97  44 inverse(sk_c1) = sk_c7 | multiply(sk_c6,multiply(sk_c7,A)) = multiply(sk_c5,A).  [para(11(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  70 multiply(sk_c1,sk_c7) = sk_c6 | multiply(sk_c4,multiply(sk_c5,A)) = multiply(sk_c6,A).  [para(24(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  71 multiply(sk_c1,sk_c7) = sk_c6 | multiply(A,multiply(sk_c4,sk_c5)) = multiply(A,sk_c6).  [para(24(b,1),28(a,2,2)),rewrite([28(9)])].
% 62.67/62.97  74 multiply(sk_c2,sk_c5) = sk_c7 | multiply(sk_c3,multiply(sk_c6,A)) = multiply(sk_c7,A).  [para(26(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  77 multiply(sk_c2,sk_c5) = sk_c7 | multiply(A,multiply(sk_c4,sk_c5)) = multiply(A,sk_c6).  [para(27(b,1),28(a,2,2)),rewrite([28(9)])].
% 62.67/62.97  92 multiply(sk_c7,sk_c6) != sk_c5 | sk_c6 != sk_c7 | inverse(identity) != sk_c7 | multiply(A,sk_c5) != sk_c7 | inverse(A) != sk_c5 | multiply(sk_c6,sk_c7) != sk_c5 | inverse(B) != sk_c7 | multiply(B,sk_c6) != sk_c7 | inverse(C) != sk_c6 | multiply(C,sk_c5) != sk_c6.  [para(1(a,1),29(b,1)),flip(b)].
% 62.67/62.97  128 multiply(sk_c7,sk_c6) != sk_c5 | sk_c6 != sk_c7 | inverse(identity) != sk_c7 | multiply(A,sk_c5) != sk_c7 | inverse(A) != sk_c5 | multiply(sk_c6,sk_c7) != sk_c5 | inverse(B) != sk_c6 | multiply(B,sk_c5) != sk_c6.  [factor(92,c,g),rewrite([1(27)]),merge(g)].
% 62.67/62.97  160 multiply(sk_c7,sk_c6) != sk_c5 | sk_c6 != sk_c7 | inverse(identity) != sk_c7 | identity != sk_c7 | inverse(inverse(sk_c5)) != sk_c5 | multiply(sk_c6,sk_c7) != sk_c5 | inverse(A) != sk_c6 | multiply(A,sk_c5) != sk_c6.  [para(2(a,1),128(d,1))].
% 62.67/62.97  186 multiply(inverse(inverse(A)),identity) = A.  [para(2(a,1),35(a,1,2))].
% 62.67/62.97  190 inverse(sk_c3) = sk_c7 | multiply(inverse(sk_c7),sk_c5) = sk_c6.  [para(7(a,1),35(a,1,2))].
% 62.67/62.97  194 inverse(sk_c1) = sk_c7 | multiply(inverse(sk_c6),sk_c5) = sk_c7.  [para(11(b,1),35(a,1,2))].
% 62.67/62.97  195 inverse(sk_c1) = sk_c7 | multiply(inverse(sk_c3),sk_c7) = sk_c6.  [para(12(b,1),35(a,1,2))].
% 62.67/62.97  196 inverse(sk_c1) = sk_c7 | multiply(inverse(sk_c4),sk_c6) = sk_c5.  [para(13(b,1),35(a,1,2))].
% 62.67/62.97  199 inverse(sk_c2) = sk_c5 | multiply(inverse(sk_c6),sk_c5) = sk_c7.  [para(16(b,1),35(a,1,2))].
% 62.67/62.97  200 inverse(sk_c2) = sk_c5 | multiply(inverse(sk_c3),sk_c7) = sk_c6.  [para(17(b,1),35(a,1,2))].
% 62.67/62.97  201 inverse(sk_c2) = sk_c5 | multiply(inverse(sk_c4),sk_c6) = sk_c5.  [para(18(b,1),35(a,1,2))].
% 62.67/62.97  202 multiply(sk_c7,sk_c6) = sk_c5 | multiply(inverse(sk_c6),sk_c5) = sk_c7.  [para(19(b,1),35(a,1,2))].
% 62.67/62.97  212 inverse(sk_c1) = sk_c7 | multiply(inverse(sk_c7),identity) = sk_c3.  [para(31(b,1),35(a,1,2))].
% 62.67/62.97  213 multiply(inverse(inverse(A)),B) = multiply(A,B).  [para(35(a,1),35(a,1,2))].
% 62.67/62.97  214 multiply(A,identity) = A.  [back_rewrite(186),rewrite([213(4)])].
% 62.67/62.97  215 inverse(sk_c1) = sk_c7 | inverse(sk_c7) = sk_c3.  [back_rewrite(212),rewrite([214(8)])].
% 62.67/62.97  217 inverse(identity) = identity.  [para(214(a,1),2(a,1))].
% 62.67/62.97  242 multiply(sk_c7,sk_c6) != sk_c5 | sk_c6 != sk_c7 | identity != sk_c7 | inverse(inverse(sk_c5)) != sk_c5 | multiply(sk_c6,sk_c7) != sk_c5 | inverse(A) != sk_c6 | multiply(A,sk_c5) != sk_c6.  [back_rewrite(160),rewrite([217(10)]),merge(d)].
% 62.67/62.97  260 inverse(sk_c1) = sk_c7 | multiply(A,multiply(sk_c6,sk_c4)) = A.  [para(32(b,1),28(a,2,2)),rewrite([28(8),214(10)])].
% 62.67/62.97  261 inverse(sk_c1) = sk_c7 | inverse(sk_c6) = sk_c4.  [para(32(b,1),35(a,1,2)),rewrite([214(8)])].
% 62.67/62.97  269 multiply(sk_c7,sk_c6) != sk_c5 | sk_c6 != sk_c7 | identity != sk_c7 | inverse(inverse(sk_c5)) != sk_c5 | multiply(sk_c6,sk_c7) != sk_c5 | inverse(inverse(sk_c5)) != sk_c6 | identity != sk_c6.  [para(2(a,1),242(g,1))].
% 62.67/62.97  278 inverse(sk_c2) = sk_c5 | inverse(sk_c7) = sk_c3.  [para(33(b,1),35(a,1,2)),rewrite([214(8)])].
% 62.67/62.97  281 inverse(sk_c2) = sk_c5 | multiply(A,multiply(sk_c6,sk_c4)) = A.  [para(34(b,1),28(a,2,2)),rewrite([28(8),214(10)])].
% 62.67/62.97  282 inverse(sk_c2) = sk_c5 | inverse(sk_c6) = sk_c4.  [para(34(b,1),35(a,1,2)),rewrite([214(8)])].
% 62.67/62.97  307 multiply(A,inverse(A)) = identity.  [para(213(a,1),2(a,1))].
% 62.67/62.97  319 multiply(A,multiply(inverse(A),B)) = B.  [para(213(a,1),35(a,1))].
% 62.67/62.97  320 inverse(inverse(A)) = A.  [para(213(a,1),214(a,1)),rewrite([214(2)]),flip(a)].
% 62.67/62.97  331 multiply(sk_c7,sk_c6) != sk_c5 | sk_c6 != sk_c7 | identity != sk_c7 | multiply(sk_c6,sk_c7) != sk_c5 | sk_c5 != sk_c6 | identity != sk_c6.  [back_rewrite(269),rewrite([320(14),320(22)]),xx(d)].
% 62.67/62.97  346 inverse(sk_c1) = sk_c7 | multiply(sk_c3,sk_c7) = identity.  [para(3(b,1),307(a,1,2))].
% 62.67/62.97  348 inverse(sk_c2) = sk_c5 | multiply(sk_c3,sk_c7) = identity.  [para(5(b,1),307(a,1,2))].
% 62.67/62.97  350 multiply(A,multiply(B,inverse(multiply(A,B)))) = identity.  [para(307(a,1),28(a,1)),flip(a)].
% 62.67/62.97  351 inverse(sk_c7) = sk_c3 | multiply(sk_c1,sk_c7) = identity.  [para(215(a,1),307(a,1,2))].
% 62.67/62.97  352 inverse(sk_c6) = sk_c4 | multiply(sk_c1,sk_c7) = identity.  [para(261(a,1),307(a,1,2))].
% 62.67/62.97  353 inverse(sk_c7) = sk_c3 | multiply(sk_c2,sk_c5) = identity.  [para(278(a,1),307(a,1,2))].
% 62.67/62.97  356 inverse(sk_c6) = sk_c4 | multiply(sk_c2,sk_c5) = identity.  [para(282(a,1),307(a,1,2))].
% 62.67/62.97  529 inverse(sk_c1) = sk_c7 | multiply(A,multiply(sk_c3,sk_c7)) = A.  [para(346(b,1),28(a,2,2)),rewrite([28(8),214(10)])].
% 62.67/62.97  623 inverse(sk_c2) = sk_c5 | multiply(A,multiply(sk_c3,sk_c7)) = A.  [para(348(b,1),28(a,2,2)),rewrite([28(8),214(10)])].
% 62.67/62.97  633 inverse(sk_c7) = sk_c3 | identity = sk_c6 | inverse(sk_c3) = sk_c7.  [para(351(b,1),9(a,1))].
% 62.67/62.97  726 inverse(sk_c6) = sk_c4 | identity = sk_c6 | inverse(sk_c4) = sk_c6.  [para(352(b,1),10(a,1))].
% 62.67/62.97  734 inverse(sk_c7) = sk_c3 | identity = sk_c7 | inverse(sk_c3) = sk_c7.  [para(353(b,1),14(a,1))].
% 62.67/62.97  748 inverse(sk_c6) = sk_c4 | identity = sk_c7 | inverse(sk_c4) = sk_c6.  [para(356(b,1),15(a,1))].
% 62.67/62.97  1031 inverse(sk_c1) = sk_c7 | multiply(inverse(sk_c6),multiply(sk_c5,A)) = multiply(sk_c7,A).  [para(194(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  1039 inverse(sk_c1) = sk_c7 | multiply(sk_c5,inverse(sk_c7)) = sk_c6.  [para(307(a,1),44(b,1,2)),rewrite([214(7)]),flip(b)].
% 62.67/62.97  1111 inverse(sk_c1) = sk_c7 | multiply(sk_c7,sk_c7) = sk_c6.  [para(3(b,1),195(b,1,1)),merge(b)].
% 62.67/62.97  1115 inverse(sk_c1) = sk_c7 | multiply(sk_c7,multiply(sk_c7,A)) = multiply(sk_c6,A).  [para(1111(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  1118 inverse(sk_c1) = sk_c7 | multiply(sk_c5,sk_c7) = multiply(sk_c6,sk_c6).  [para(1111(b,1),44(b,1,2)),flip(c),merge(b)].
% 62.67/62.97  1120 inverse(sk_c1) = sk_c7 | multiply(sk_c6,sk_c6) = sk_c5.  [para(4(b,1),196(b,1,1)),merge(b)].
% 62.67/62.97  1226 inverse(sk_c1) = sk_c7 | multiply(sk_c6,multiply(sk_c6,A)) = multiply(sk_c5,A).  [para(1120(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  1245 inverse(sk_c2) = sk_c5 | multiply(inverse(sk_c6),multiply(sk_c5,A)) = multiply(sk_c7,A).  [para(199(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  1314 inverse(sk_c2) = sk_c5 | multiply(sk_c7,sk_c7) = sk_c6.  [para(5(b,1),200(b,1,1)),merge(b)].
% 62.67/62.97  1318 inverse(sk_c2) = sk_c5 | multiply(sk_c7,multiply(sk_c7,A)) = multiply(sk_c6,A).  [para(1314(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  1322 inverse(sk_c2) = sk_c5 | multiply(sk_c6,sk_c6) = sk_c5.  [para(6(b,1),201(b,1,1)),merge(b)].
% 62.67/62.97  1378 inverse(sk_c2) = sk_c5 | multiply(sk_c6,multiply(sk_c6,A)) = multiply(sk_c5,A).  [para(1322(b,1),28(a,1,1)),flip(b)].
% 62.67/62.97  1401 multiply(A,inverse(multiply(B,A))) = inverse(B).  [para(350(a,1),35(a,1,2)),rewrite([214(3)]),flip(a)].
% 62.67/62.97  1450 multiply(sk_c1,sk_c7) = sk_c6 | multiply(sk_c6,inverse(sk_c7)) = inverse(sk_c3).  [para(23(b,1),1401(a,1,2,1))].
% 62.67/62.97  1451 multiply(sk_c1,sk_c7) = sk_c6 | multiply(sk_c5,inverse(sk_c6)) = inverse(sk_c4).  [para(24(b,1),1401(a,1,2,1))].
% 62.67/62.97  1458 inverse(multiply(A,B)) = multiply(inverse(B),inverse(A)).  [para(1401(a,1),35(a,1,2)),flip(a)].
% 62.67/62.97  4830 multiply(sk_c1,sk_c7) = sk_c6 | multiply(sk_c4,multiply(sk_c5,multiply(sk_c4,sk_c5))) = multiply(sk_c6,sk_c6).  [para(71(b,1),70(b,2)),merge(b)].
% 62.67/62.97  5692 inverse(sk_c7) = sk_c3 | identity = sk_c6.  [para(633(c,1),320(a,1,1)),merge(c)].
% 62.67/62.97  5715 multiply(sk_c2,sk_c5) = sk_c7 | multiply(sk_c3,multiply(sk_c6,multiply(sk_c4,sk_c5))) = multiply(sk_c7,sk_c6).  [para(77(b,1),74(b,2)),merge(b)].
% 62.67/62.97  5747 identity = sk_c6 | inverse(sk_c3) = sk_c7.  [para(5692(a,1),320(a,1,1))].
% 62.67/62.97  6186 inverse(sk_c6) = sk_c4 | identity = sk_c6.  [para(726(c,1),320(a,1,1)),merge(c)].
% 62.67/62.97  6188 identity = sk_c6 | multiply(sk_c4,multiply(sk_c6,A)) = A.  [para(6186(a,1),35(a,1,1))].
% 62.67/62.97  6189 identity = sk_c6 | inverse(sk_c4) = sk_c6.  [para(6186(a,1),320(a,1,1))].
% 62.67/62.97  6473 inverse(sk_c7) = sk_c3 | identity = sk_c7.  [para(734(c,1),320(a,1,1)),merge(c)].
% 62.67/62.97  6475 identity = sk_c7 | multiply(sk_c3,multiply(sk_c7,A)) = A.  [para(6473(a,1),35(a,1,1))].
% 62.67/62.97  6745 inverse(sk_c6) = sk_c4 | identity = sk_c7.  [para(748(c,1),320(a,1,1)),merge(c)].
% 62.67/62.97  6746 identity = sk_c7 | multiply(sk_c4,sk_c6) = identity.  [para(6745(a,1),2(a,1,1))].
% 62.67/62.97  6750 identity = sk_c7 | multiply(sk_c6,multiply(sk_c4,A)) = A.  [para(6745(a,1),319(a,1,2,1))].
% 62.67/62.97  6776 identity = sk_c7 | multiply(A,multiply(sk_c4,sk_c6)) = A.  [para(6746(b,1),28(a,2,2)),rewrite([28(7),214(9)])].
% 62.67/62.97  6862 identity = sk_c7 | multiply(sk_c4,sk_c6) = multiply(sk_c6,sk_c4).  [para(6776(b,1),6750(b,1,2)),flip(c),merge(b)].
% 62.67/62.97  7113 inverse(sk_c1) = sk_c7 | multiply(sk_c5,sk_c7) = sk_c5.  [para(1120(b,1),1118(b,2)),merge(b)].
% 62.67/62.97  7118 inverse(sk_c1) = sk_c7 | identity = sk_c7.  [para(7113(b,1),35(a,1,2)),rewrite([2(8)])].
% 62.67/62.97  7130 identity = sk_c7 | multiply(sk_c7,multiply(sk_c1,A)) = A.  [para(7118(a,1),35(a,1,1))].
% 62.67/62.97  7131 identity = sk_c7 | inverse(sk_c7) = sk_c1.  [para(7118(a,1),320(a,1,1))].
% 62.67/62.97  7133 identity = sk_c7 | multiply(sk_c1,multiply(sk_c7,A)) = A.  [para(7118(a,1),319(a,1,2,1))].
% 62.67/62.97  7156 identity = sk_c7 | sk_c3 = sk_c1.  [para(7131(b,1),6473(a,1)),flip(b),merge(c)].
% 62.67/62.97  7163 sk_c3 = sk_c1 | inverse(sk_c7) = identity.  [para(7156(a,1),217(a,1,1))].
% 62.67/62.97  7192 sk_c3 = sk_c1 | inverse(sk_c3) = sk_c7 | sk_c5 = sk_c6.  [para(7163(b,1),190(b,1,1)),rewrite([1(10)])].
% 62.67/62.97  7199 sk_c3 = sk_c1 | inverse(sk_c1) = sk_c7 | sk_c5 = sk_c6.  [para(7163(b,1),1039(b,1,2)),rewrite([214(10)])].
% 62.67/62.97  7664 identity = sk_c7 | multiply(sk_c3,A) = multiply(sk_c1,A).  [para(7130(b,1),6475(b,1,2)),merge(b)].
% 62.67/62.97  7692 identity = sk_c7 | multiply(sk_c4,sk_c6) = multiply(sk_c1,sk_c7).  [para(6776(b,1),7133(b,1,2)),flip(c),merge(b)].
% 62.67/62.97  7873 sk_c3 = sk_c1 | sk_c5 = sk_c6 | inverse(sk_c7) = sk_c3.  [para(7192(b,1),320(a,1,1))].
% 62.67/62.97  7922 sk_c3 = sk_c1 | sk_c5 = sk_c6 | inverse(sk_c7) = sk_c1.  [para(7199(b,1),320(a,1,1))].
% 62.67/62.97  8388 identity = sk_c7 | multiply(sk_c1,multiply(sk_c4,sk_c6)) = sk_c3.  [para(7664(b,1),6776(b,1)),merge(b)].
% 62.67/62.97  8672 sk_c3 = sk_c1 | sk_c5 = sk_c6.  [para(7922(c,1),7873(c,1)),flip(e),merge(c),merge(d),merge(e)].
% 62.67/62.97  8703 sk_c5 = sk_c6 | multiply(sk_c2,sk_c5) = sk_c7 | multiply(sk_c1,sk_c6) = sk_c7.  [para(8672(a,1),26(b,1,1))].
% 62.67/62.97  18199 inverse(sk_c1) = sk_c7 | multiply(sk_c5,sk_c4) = sk_c6.  [para(32(b,1),1226(b,1,2)),rewrite([214(11)]),flip(c),merge(b)].
% 62.67/62.97  18220 inverse(sk_c1) = sk_c7 | multiply(sk_c7,sk_c4) = identity.  [para(18199(b,1),1031(b,1,2)),rewrite([2(12)]),flip(c),merge(b)].
% 62.67/62.97  18235 inverse(sk_c1) = sk_c7 | multiply(sk_c6,sk_c4) = sk_c7.  [para(18220(b,1),1115(b,1,2)),rewrite([214(11)]),flip(c),merge(b)].
% 62.67/62.97  18386 inverse(sk_c1) = sk_c7 | multiply(A,sk_c7) = A.  [para(18235(b,1),260(b,1,2)),merge(b)].
% 62.67/62.97  18428 inverse(sk_c1) = sk_c7 | inverse(sk_c3) = sk_c6.  [para(18386(b,1),195(b,1)),merge(b)].
% 62.67/62.97  18439 inverse(sk_c1) = sk_c7 | multiply(A,sk_c3) = A.  [para(18386(b,1),529(b,1,2)),merge(b)].
% 62.67/62.97  18665 inverse(sk_c1) = sk_c7 | inverse(sk_c3) = identity.  [para(18439(b,1),2(a,1))].
% 62.67/62.97  18702 inverse(sk_c1) = sk_c7 | identity = sk_c6.  [para(18665(b,1),18428(b,1)),merge(b)].
% 62.67/62.97  18706 identity = sk_c6 | multiply(sk_c1,sk_c7) = identity.  [para(18702(a,1),307(a,1,2))].
% 62.67/62.97  18726 identity = sk_c6 | multiply(sk_c6,sk_c7) = sk_c5.  [para(18706(b,1),22(a,1)),merge(b)].
% 62.67/62.97  18731 identity = sk_c6 | multiply(inverse(sk_c6),sk_c5) = sk_c7.  [para(18726(b,1),35(a,1,2))].
% 62.67/62.97  19017 identity = sk_c6 | multiply(inverse(sk_c5),sk_c6) = inverse(sk_c7).  [para(18731(b,1),1458(a,1,1)),rewrite([320(10)]),flip(b)].
% 62.67/62.97  20668 inverse(sk_c2) = sk_c5 | multiply(sk_c5,sk_c4) = sk_c6.  [para(34(b,1),1378(b,1,2)),rewrite([214(11)]),flip(c),merge(b)].
% 62.67/62.97  20691 inverse(sk_c2) = sk_c5 | multiply(sk_c7,sk_c4) = identity.  [para(20668(b,1),1245(b,1,2)),rewrite([2(12)]),flip(c),merge(b)].
% 62.67/62.97  20703 inverse(sk_c2) = sk_c5 | multiply(sk_c6,sk_c4) = sk_c7.  [para(20691(b,1),1318(b,1,2)),rewrite([214(11)]),flip(c),merge(b)].
% 62.67/62.97  20789 inverse(sk_c2) = sk_c5 | identity = sk_c7.  [para(20703(b,1),34(b,1)),flip(c),merge(b)].
% 62.67/62.97  20792 inverse(sk_c2) = sk_c5 | multiply(A,sk_c7) = A.  [para(20703(b,1),281(b,1,2)),merge(b)].
% 62.67/62.97  20796 identity = sk_c7 | inverse(sk_c5) = sk_c2.  [para(20789(a,1),320(a,1,1))].
% 62.67/62.97  20797 identity = sk_c7 | multiply(sk_c2,sk_c5) = identity.  [para(20789(a,1),307(a,1,2))].
% 62.67/62.97  20817 identity = sk_c7 | multiply(sk_c6,sk_c7) = sk_c5.  [para(20797(b,1),25(a,1)),merge(b)].
% 62.67/62.97  20820 identity = sk_c7 | multiply(inverse(sk_c6),sk_c5) = sk_c7.  [para(20817(b,1),35(a,1,2))].
% 62.67/62.97  20849 inverse(sk_c2) = sk_c5 | inverse(sk_c3) = sk_c6.  [para(20792(b,1),200(b,1)),merge(b)].
% 62.67/62.97  20861 inverse(sk_c2) = sk_c5 | multiply(A,sk_c3) = A.  [para(20792(b,1),623(b,1,2)),merge(b)].
% 62.67/62.97  20972 identity = sk_c7 | multiply(inverse(sk_c5),sk_c6) = inverse(sk_c7).  [para(20820(b,1),1458(a,1,1)),rewrite([320(10)]),flip(b)].
% 62.67/62.97  21026 inverse(sk_c2) = sk_c5 | inverse(sk_c3) = identity.  [para(20861(b,1),2(a,1))].
% 62.67/62.97  21055 inverse(sk_c2) = sk_c5 | identity = sk_c6.  [para(21026(b,1),20849(b,1)),merge(b)].
% 62.67/62.97  21058 identity = sk_c6 | inverse(sk_c5) = sk_c2.  [para(21055(a,1),320(a,1,1))].
% 62.67/62.97  21060 identity = sk_c6 | multiply(sk_c2,multiply(sk_c5,A)) = A.  [para(21055(a,1),319(a,1,2,1))].
% 62.67/62.97  21852 multiply(sk_c6,inverse(sk_c7)) = inverse(sk_c3) | identity = sk_c6.  [para(1450(a,1),18706(b,1)),flip(c),merge(c)].
% 62.67/62.97  21868 multiply(sk_c5,inverse(sk_c6)) = inverse(sk_c4) | identity = sk_c6.  [para(1451(a,1),18706(b,1)),flip(c),merge(c)].
% 62.67/62.97  22341 identity = sk_c6 | multiply(sk_c2,sk_c6) = inverse(sk_c7).  [para(21058(b,1),19017(b,1,1)),merge(b)].
% 62.67/62.97  23995 identity = sk_c7 | multiply(inverse(sk_c5),sk_c6) = sk_c3.  [para(6473(a,1),20972(b,2)),merge(b)].
% 62.67/62.97  23997 identity = sk_c7 | multiply(sk_c2,sk_c6) = inverse(sk_c7).  [para(20796(b,1),20972(b,1,1)),merge(b)].
% 62.67/62.97  24728 identity = sk_c6 | multiply(sk_c6,sk_c3) = inverse(sk_c3).  [para(5692(a,1),21852(a,1,2)),merge(c)].
% 62.67/62.97  24729 identity = sk_c6 | multiply(sk_c6,inverse(sk_c7)) = sk_c7.  [para(5747(b,1),21852(a,2)),merge(c)].
% 62.67/62.97  24771 identity = sk_c6 | multiply(sk_c6,sk_c3) = sk_c7.  [para(5747(b,1),24728(b,2)),merge(b)].
% 62.67/62.97  24787 identity = sk_c6 | multiply(sk_c4,sk_c7) = sk_c3.  [para(24771(b,1),6188(b,1,2)),merge(b)].
% 62.67/62.97  24797 identity = sk_c6 | multiply(sk_c4,sk_c7) = inverse(sk_c7).  [para(24729(b,1),6188(b,1,2)),merge(b)].
% 62.67/62.97  24908 identity = sk_c6 | multiply(sk_c5,sk_c4) = inverse(sk_c4).  [para(6186(a,1),21868(a,1,2)),merge(c)].
% 62.67/62.97  24935 identity = sk_c6 | multiply(sk_c5,sk_c4) = sk_c6.  [para(6189(b,1),24908(b,2)),merge(b)].
% 62.67/62.97  24945 identity = sk_c6 | multiply(sk_c2,sk_c6) = sk_c4.  [para(24935(b,1),21060(b,1,2)),merge(b)].
% 62.67/62.97  24950 identity = sk_c6 | inverse(sk_c7) = sk_c4.  [para(24945(b,1),22341(b,1)),flip(c),merge(b)].
% 62.67/62.97  25057 identity = sk_c6 | multiply(sk_c4,sk_c7) = identity.  [para(24950(b,1),2(a,1,1))].
% 62.67/62.97  25373 identity = sk_c6 | identity = sk_c3.  [para(25057(b,1),24787(b,1)),merge(b)].
% 62.67/62.97  25375 identity = sk_c6 | inverse(sk_c7) = identity.  [para(25057(b,1),24797(b,1)),flip(c),merge(b)].
% 62.67/62.97  25378 identity = sk_c6 | inverse(sk_c3) = identity.  [para(25373(b,1),217(a,1,1))].
% 62.67/62.97  25477 identity = sk_c6 | inverse(sk_c3) = sk_c6.  [para(25375(b,1),21852(a,1,2)),rewrite([214(6)]),flip(b),merge(c)].
% 62.67/62.97  25640 identity = sk_c6.  [para(25477(b,1),25378(b,1)),flip(c),merge(b),merge(c)].
% 62.67/62.97  25931 sk_c6 = sk_c7 | multiply(sk_c2,sk_c6) = inverse(sk_c7).  [back_rewrite(23997),rewrite([25640(1)])].
% 62.67/62.97  25933 sk_c6 = sk_c7 | multiply(inverse(sk_c5),sk_c6) = sk_c3.  [back_rewrite(23995),rewrite([25640(1)])].
% 62.67/62.97  28651 sk_c6 = sk_c7 | multiply(sk_c1,multiply(sk_c4,sk_c6)) = sk_c3.  [back_rewrite(8388),rewrite([25640(1)])].
% 62.67/62.97  28728 sk_c6 = sk_c7 | multiply(sk_c4,sk_c6) = multiply(sk_c1,sk_c7).  [back_rewrite(7692),rewrite([25640(1)])].
% 62.67/62.97  28835 sk_c6 = sk_c7 | multiply(sk_c4,sk_c6) = multiply(sk_c6,sk_c4).  [back_rewrite(6862),rewrite([25640(1)])].
% 62.67/62.97  28855 sk_c6 = sk_c7 | multiply(A,multiply(sk_c4,sk_c6)) = A.  [back_rewrite(6776),rewrite([25640(1)])].
% 62.67/62.97  29286 multiply(sk_c7,sk_c6) != sk_c5 | sk_c6 != sk_c7 | multiply(sk_c6,sk_c7) != sk_c5 | sk_c5 != sk_c6.  [back_rewrite(331),rewrite([25640(9),25640(20)]),xx(f),merge(c)].
% 62.67/62.97  29289 inverse(sk_c6) = sk_c6.  [back_rewrite(217),rewrite([25640(1),25640(3)])].
% 62.67/62.97  29290 multiply(A,sk_c6) = A.  [back_rewrite(214),rewrite([25640(1)])].
% 62.67/62.97  29292 multiply(sk_c6,A) = A.  [back_rewrite(1),rewrite([25640(1)])].
% 62.67/62.97  29660 sk_c5 = sk_c7.  [back_rewrite(202),rewrite([29290(3),29289(5),29292(6)]),flip(a),merge(b)].
% 62.67/62.97  29662 sk_c6 != sk_c7.  [back_rewrite(29286),rewrite([29290(3),29660(2),29292(9),29660(8),29660(10)]),flip(d),xx(a),xx(c),merge(b)].
% 62.67/62.97  29668 multiply(A,sk_c4) = A.  [back_rewrite(28855),rewrite([29290(6)]),unit_del(a,29662)].
% 62.67/62.97  29671 sk_c4 = sk_c6.  [back_rewrite(28835),rewrite([29290(6),29668(7)]),unit_del(a,29662)].
% 62.67/62.97  29676 multiply(sk_c1,sk_c7) = sk_c6.  [back_rewrite(28728),rewrite([29671(4),29290(6)]),flip(b),unit_del(a,29662)].
% 62.67/62.97  29677 sk_c3 = sk_c1.  [back_rewrite(28651),rewrite([29671(5),29290(7),29290(6)]),flip(b),unit_del(a,29662)].
% 62.67/62.97  29899 inverse(sk_c7) = sk_c1.  [back_rewrite(25933),rewrite([29660(4),29290(7),29677(6)]),unit_del(a,29662)].
% 62.67/62.97  29900 sk_c2 = sk_c1.  [back_rewrite(25931),rewrite([29290(6),29899(6)]),unit_del(a,29662)].
% 62.67/62.97  29995 sk_c1 = sk_c7.  [back_rewrite(8703),rewrite([29660(1),29900(4),29660(5),29676(6),29290(9)]),flip(a),merge(b),unit_del(a,29662)].
% 62.67/62.97  29997 multiply(sk_c7,sk_c7) = sk_c7.  [back_rewrite(5715),rewrite([29900(1),29995(1),29660(2),29677(6),29995(6),29671(8),29660(9),29292(10),29292(9),29290(11)]),merge(b)].
% 62.67/62.97  29998 $F.  [back_rewrite(4830),rewrite([29995(1),29997(3),29671(4),29660(5),29671(6),29660(7),29292(8),29997(7),29292(6),29290(7)]),flip(a),flip(b),merge(b),unit_del(a,29662)].
% 62.67/62.97  
% 62.67/62.97  % SZS output end Refutation
% 62.67/62.97  ============================== end of proof ==========================
% 62.67/62.97  
% 62.67/62.97  ============================== STATISTICS ============================
% 62.67/62.97  
% 62.67/62.97  Given=4780. Generated=3277318. Kept=29997. proofs=1.
% 62.67/62.97  Usable=1120. Sos=3204. Demods=26. Limbo=708, Disabled=24994. Hints=0.
% 62.67/62.97  Megabytes=26.35.
% 62.67/62.97  User_CPU=60.28, System_CPU=1.71, Wall_clock=62.
% 62.67/62.97  
% 62.67/62.97  ============================== end of statistics =====================
% 62.67/62.97  
% 62.67/62.97  ============================== end of search =========================
% 62.67/62.97  
% 62.67/62.97  THEOREM PROVED
% 62.67/62.97  % SZS status Unsatisfiable
% 62.67/62.97  
% 62.67/62.97  Exiting with 1 proof.
% 62.67/62.97  
% 62.67/62.97  Process 30277 exit (max_proofs) Tue Jun 14 00:16:58 2022
% 62.67/62.97  Prover9 interrupted
%------------------------------------------------------------------------------