TSTP Solution File: SET879+1 by Princess---230619

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Princess---230619
% Problem  : SET879+1 : TPTP v8.1.2. Released v3.2.0.
% Transfm  : none
% Format   : tptp
% Command  : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s

% Computer : n006.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 : Thu Aug 31 15:26:53 EDT 2023

% Result   : Theorem 4.20s 1.41s
% Output   : Proof 6.03s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : SET879+1 : TPTP v8.1.2. Released v3.2.0.
% 0.00/0.13  % Command  : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s
% 0.18/0.34  % Computer : n006.cluster.edu
% 0.18/0.34  % Model    : x86_64 x86_64
% 0.18/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.18/0.34  % Memory   : 8042.1875MB
% 0.18/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.18/0.34  % CPULimit : 300
% 0.18/0.34  % WCLimit  : 300
% 0.18/0.34  % DateTime : Sat Aug 26 13:10:22 EDT 2023
% 0.18/0.34  % CPUTime  : 
% 0.20/0.60  ________       _____
% 0.20/0.60  ___  __ \_________(_)________________________________
% 0.20/0.60  __  /_/ /_  ___/_  /__  __ \  ___/  _ \_  ___/_  ___/
% 0.20/0.60  _  ____/_  /   _  / _  / / / /__ /  __/(__  )_(__  )
% 0.20/0.60  /_/     /_/    /_/  /_/ /_/\___/ \___//____/ /____/
% 0.20/0.60  
% 0.20/0.60  A Theorem Prover for First-Order Logic modulo Linear Integer Arithmetic
% 0.20/0.60  (2023-06-19)
% 0.20/0.60  
% 0.20/0.60  (c) Philipp Rümmer, 2009-2023
% 0.20/0.60  Contributors: Peter Backeman, Peter Baumgartner, Angelo Brillout, Zafer Esen,
% 0.20/0.60                Amanda Stjerna.
% 0.20/0.60  Free software under BSD-3-Clause.
% 0.20/0.60  
% 0.20/0.60  For more information, visit http://www.philipp.ruemmer.org/princess.shtml
% 0.20/0.60  
% 0.20/0.60  Loading /export/starexec/sandbox2/benchmark/theBenchmark.p ...
% 0.20/0.61  Running up to 7 provers in parallel.
% 0.20/0.62  Prover 0: Options:  +triggersInConjecture +genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1042961893
% 0.20/0.62  Prover 1: Options:  +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1571432423
% 0.20/0.62  Prover 2: Options:  +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMinimalAndEmpty -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1065072994
% 0.20/0.62  Prover 3: Options:  +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1922548996
% 0.20/0.62  Prover 5: Options:  +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMaximal -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=complete -randomSeed=1259561288
% 0.20/0.62  Prover 6: Options:  -triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximalOutermost -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1399714365
% 0.20/0.62  Prover 4: Options:  +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=1868514696
% 2.09/0.98  Prover 4: Preprocessing ...
% 2.09/0.99  Prover 1: Preprocessing ...
% 2.09/1.03  Prover 6: Preprocessing ...
% 2.09/1.03  Prover 0: Preprocessing ...
% 2.09/1.03  Prover 5: Preprocessing ...
% 2.09/1.03  Prover 2: Preprocessing ...
% 2.09/1.03  Prover 3: Preprocessing ...
% 3.39/1.17  Prover 1: Warning: ignoring some quantifiers
% 3.39/1.17  Prover 3: Warning: ignoring some quantifiers
% 3.39/1.18  Prover 1: Constructing countermodel ...
% 3.39/1.19  Prover 4: Warning: ignoring some quantifiers
% 3.39/1.19  Prover 6: Proving ...
% 3.39/1.19  Prover 5: Proving ...
% 3.39/1.19  Prover 2: Proving ...
% 3.39/1.19  Prover 3: Constructing countermodel ...
% 3.39/1.19  Prover 4: Constructing countermodel ...
% 3.39/1.21  Prover 0: Proving ...
% 4.20/1.40  Prover 0: proved (788ms)
% 4.20/1.40  
% 4.20/1.41  % SZS status Theorem for /export/starexec/sandbox2/benchmark/theBenchmark.p
% 4.20/1.41  
% 4.20/1.41  Prover 2: proved (788ms)
% 4.20/1.41  
% 4.20/1.41  % SZS status Theorem for /export/starexec/sandbox2/benchmark/theBenchmark.p
% 4.20/1.41  
% 4.20/1.41  Prover 3: stopped
% 4.20/1.41  Prover 6: stopped
% 4.20/1.41  Prover 5: stopped
% 4.20/1.42  Prover 7: Options:  +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-236303470
% 4.20/1.42  Prover 8: Options:  +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-200781089
% 4.20/1.42  Prover 10: Options:  +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=919308125
% 4.20/1.42  Prover 4: Found proof (size 28)
% 4.20/1.42  Prover 4: proved (792ms)
% 4.20/1.42  Prover 11: Options:  +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1509710984
% 4.20/1.42  Prover 7: Preprocessing ...
% 4.20/1.42  Prover 13: Options:  +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=complete -randomSeed=1138197443
% 4.20/1.42  Prover 8: Preprocessing ...
% 4.20/1.43  Prover 11: Preprocessing ...
% 4.20/1.43  Prover 1: Found proof (size 32)
% 4.20/1.43  Prover 1: proved (815ms)
% 4.20/1.43  Prover 10: Preprocessing ...
% 4.20/1.45  Prover 11: stopped
% 4.20/1.45  Prover 13: Preprocessing ...
% 5.45/1.46  Prover 7: Warning: ignoring some quantifiers
% 5.45/1.46  Prover 10: Warning: ignoring some quantifiers
% 5.45/1.47  Prover 13: stopped
% 5.45/1.47  Prover 10: Constructing countermodel ...
% 5.45/1.47  Prover 7: Constructing countermodel ...
% 5.45/1.47  Prover 8: Warning: ignoring some quantifiers
% 5.45/1.47  Prover 7: stopped
% 5.45/1.47  Prover 10: stopped
% 5.45/1.47  Prover 8: Constructing countermodel ...
% 5.45/1.48  Prover 8: stopped
% 5.45/1.48  
% 5.45/1.48  % SZS status Theorem for /export/starexec/sandbox2/benchmark/theBenchmark.p
% 5.45/1.48  
% 5.66/1.48  % SZS output start Proof for theBenchmark
% 5.66/1.48  Assumptions after simplification:
% 5.66/1.48  ---------------------------------
% 5.66/1.49  
% 5.66/1.49    (d1_tarski)
% 5.66/1.52     ! [v0: $i] :  ! [v1: $i] :  ! [v2: $i] : (v2 = v0 |  ~ (singleton(v0) = v1) |
% 5.66/1.52       ~ (in(v2, v1) = 0) |  ~ $i(v2) |  ~ $i(v1) |  ~ $i(v0)) &  ! [v0: $i] :  !
% 5.66/1.52    [v1: $i] :  ! [v2: int] : (v2 = 0 |  ~ (singleton(v0) = v1) |  ~ (in(v0, v1) =
% 5.66/1.52        v2) |  ~ $i(v1) |  ~ $i(v0)) &  ? [v0: $i] :  ! [v1: $i] :  ! [v2: $i] :
% 5.66/1.52    (v2 = v0 |  ~ (singleton(v1) = v2) |  ~ $i(v1) |  ~ $i(v0) |  ? [v3: $i] :  ?
% 5.66/1.52      [v4: any] : (in(v3, v0) = v4 & $i(v3) & ( ~ (v4 = 0) |  ~ (v3 = v1)) & (v4 =
% 5.66/1.52          0 | v3 = v1)))
% 5.66/1.52  
% 5.66/1.52    (l34_zfmisc_1)
% 5.66/1.52     ! [v0: $i] :  ! [v1: $i] :  ! [v2: $i] :  ! [v3: $i] : (v3 = v2 |  ~
% 5.66/1.52      (set_difference(v2, v1) = v3) |  ~ (singleton(v0) = v2) |  ~ $i(v1) |  ~
% 5.66/1.52      $i(v0) | in(v0, v1) = 0) &  ! [v0: $i] :  ! [v1: $i] :  ! [v2: int] : (v2 =
% 5.66/1.52      0 |  ~ (in(v0, v1) = v2) |  ~ $i(v1) |  ~ $i(v0) |  ? [v3: $i] :
% 5.66/1.52      (set_difference(v3, v1) = v3 & singleton(v0) = v3 & $i(v3))) &  ! [v0: $i] :
% 5.66/1.52     ! [v1: $i] :  ! [v2: $i] : ( ~ (set_difference(v2, v1) = v2) |  ~
% 5.66/1.52      (singleton(v0) = v2) |  ~ $i(v1) |  ~ $i(v0) |  ? [v3: int] : ( ~ (v3 = 0) &
% 5.66/1.52        in(v0, v1) = v3)) &  ! [v0: $i] :  ! [v1: $i] : ( ~ (in(v0, v1) = 0) |  ~
% 5.66/1.52      $i(v1) |  ~ $i(v0) |  ? [v2: $i] :  ? [v3: $i] : ( ~ (v3 = v2) &
% 5.66/1.52        set_difference(v2, v1) = v3 & singleton(v0) = v2 & $i(v3) & $i(v2)))
% 5.66/1.52  
% 5.66/1.53    (t20_zfmisc_1)
% 5.66/1.53     ? [v0: $i] :  ? [v1: $i] :  ? [v2: $i] :  ? [v3: $i] :  ? [v4: $i] :
% 5.66/1.53    (set_difference(v2, v3) = v4 & singleton(v1) = v3 & singleton(v0) = v2 &
% 5.66/1.53      $i(v4) & $i(v3) & $i(v2) & $i(v1) & $i(v0) & ((v4 = v2 & v1 = v0) | ( ~ (v4
% 5.66/1.53            = v2) &  ~ (v1 = v0))))
% 5.66/1.53  
% 5.66/1.53    (function-axioms)
% 5.66/1.53     ! [v0: $i] :  ! [v1: $i] :  ! [v2: $i] :  ! [v3: $i] : (v1 = v0 |  ~
% 5.66/1.53      (set_difference(v3, v2) = v1) |  ~ (set_difference(v3, v2) = v0)) &  ! [v0:
% 5.66/1.53      MultipleValueBool] :  ! [v1: MultipleValueBool] :  ! [v2: $i] :  ! [v3: $i]
% 5.66/1.53    : (v1 = v0 |  ~ (in(v3, v2) = v1) |  ~ (in(v3, v2) = v0)) &  ! [v0:
% 5.66/1.53      MultipleValueBool] :  ! [v1: MultipleValueBool] :  ! [v2: $i] : (v1 = v0 | 
% 5.66/1.53      ~ (empty(v2) = v1) |  ~ (empty(v2) = v0)) &  ! [v0: $i] :  ! [v1: $i] :  !
% 5.66/1.53    [v2: $i] : (v1 = v0 |  ~ (singleton(v2) = v1) |  ~ (singleton(v2) = v0))
% 5.66/1.53  
% 5.66/1.53  Further assumptions not needed in the proof:
% 5.66/1.53  --------------------------------------------
% 5.66/1.53  antisymmetry_r2_hidden, rc1_xboole_0, rc2_xboole_0
% 5.66/1.53  
% 5.66/1.53  Those formulas are unsatisfiable:
% 5.66/1.53  ---------------------------------
% 5.66/1.53  
% 5.66/1.53  Begin of proof
% 5.66/1.53  | 
% 5.66/1.53  | ALPHA: (d1_tarski) implies:
% 5.66/1.54  |   (1)   ! [v0: $i] :  ! [v1: $i] :  ! [v2: int] : (v2 = 0 |  ~ (singleton(v0)
% 5.66/1.54  |            = v1) |  ~ (in(v0, v1) = v2) |  ~ $i(v1) |  ~ $i(v0))
% 5.66/1.54  |   (2)   ! [v0: $i] :  ! [v1: $i] :  ! [v2: $i] : (v2 = v0 |  ~ (singleton(v0)
% 5.66/1.54  |            = v1) |  ~ (in(v2, v1) = 0) |  ~ $i(v2) |  ~ $i(v1) |  ~ $i(v0))
% 5.66/1.54  | 
% 5.66/1.54  | ALPHA: (l34_zfmisc_1) implies:
% 5.66/1.54  |   (3)   ! [v0: $i] :  ! [v1: $i] :  ! [v2: $i] : ( ~ (set_difference(v2, v1) =
% 5.66/1.54  |            v2) |  ~ (singleton(v0) = v2) |  ~ $i(v1) |  ~ $i(v0) |  ? [v3:
% 5.66/1.54  |            int] : ( ~ (v3 = 0) & in(v0, v1) = v3))
% 5.95/1.54  |   (4)   ! [v0: $i] :  ! [v1: $i] :  ! [v2: $i] :  ! [v3: $i] : (v3 = v2 |  ~
% 5.95/1.54  |          (set_difference(v2, v1) = v3) |  ~ (singleton(v0) = v2) |  ~ $i(v1) |
% 5.95/1.54  |           ~ $i(v0) | in(v0, v1) = 0)
% 5.95/1.54  | 
% 5.95/1.54  | ALPHA: (function-axioms) implies:
% 5.95/1.54  |   (5)   ! [v0: $i] :  ! [v1: $i] :  ! [v2: $i] : (v1 = v0 |  ~ (singleton(v2)
% 5.95/1.54  |            = v1) |  ~ (singleton(v2) = v0))
% 5.95/1.54  | 
% 5.95/1.54  | DELTA: instantiating (t20_zfmisc_1) with fresh symbols all_12_0, all_12_1,
% 5.95/1.54  |        all_12_2, all_12_3, all_12_4 gives:
% 5.95/1.55  |   (6)  set_difference(all_12_2, all_12_1) = all_12_0 & singleton(all_12_3) =
% 5.95/1.55  |        all_12_1 & singleton(all_12_4) = all_12_2 & $i(all_12_0) & $i(all_12_1)
% 5.95/1.55  |        & $i(all_12_2) & $i(all_12_3) & $i(all_12_4) & ((all_12_0 = all_12_2 &
% 5.95/1.55  |            all_12_3 = all_12_4) | ( ~ (all_12_0 = all_12_2) &  ~ (all_12_3 =
% 5.95/1.55  |              all_12_4)))
% 5.95/1.55  | 
% 5.95/1.55  | ALPHA: (6) implies:
% 5.95/1.55  |   (7)  $i(all_12_4)
% 5.95/1.55  |   (8)  $i(all_12_3)
% 5.95/1.55  |   (9)  $i(all_12_1)
% 5.95/1.55  |   (10)  singleton(all_12_4) = all_12_2
% 5.95/1.55  |   (11)  singleton(all_12_3) = all_12_1
% 5.95/1.55  |   (12)  set_difference(all_12_2, all_12_1) = all_12_0
% 5.95/1.55  |   (13)  (all_12_0 = all_12_2 & all_12_3 = all_12_4) | ( ~ (all_12_0 =
% 5.95/1.55  |             all_12_2) &  ~ (all_12_3 = all_12_4))
% 5.95/1.55  | 
% 5.95/1.55  | GROUND_INST: instantiating (4) with all_12_4, all_12_1, all_12_2, all_12_0,
% 5.95/1.55  |              simplifying with (7), (9), (10), (12) gives:
% 5.95/1.55  |   (14)  all_12_0 = all_12_2 | in(all_12_4, all_12_1) = 0
% 5.95/1.55  | 
% 5.95/1.55  | BETA: splitting (13) gives:
% 5.95/1.55  | 
% 5.95/1.55  | Case 1:
% 5.95/1.55  | | 
% 5.95/1.55  | |   (15)  all_12_0 = all_12_2 & all_12_3 = all_12_4
% 5.95/1.55  | | 
% 5.95/1.55  | | ALPHA: (15) implies:
% 5.95/1.55  | |   (16)  all_12_3 = all_12_4
% 5.95/1.55  | |   (17)  all_12_0 = all_12_2
% 5.95/1.55  | | 
% 5.95/1.55  | | REDUCE: (12), (17) imply:
% 5.95/1.56  | |   (18)  set_difference(all_12_2, all_12_1) = all_12_2
% 5.95/1.56  | | 
% 5.95/1.56  | | REDUCE: (11), (16) imply:
% 5.95/1.56  | |   (19)  singleton(all_12_4) = all_12_1
% 5.95/1.56  | | 
% 5.95/1.56  | | GROUND_INST: instantiating (5) with all_12_2, all_12_1, all_12_4,
% 5.95/1.56  | |              simplifying with (10), (19) gives:
% 5.95/1.56  | |   (20)  all_12_1 = all_12_2
% 5.95/1.56  | | 
% 5.95/1.56  | | REDUCE: (18), (20) imply:
% 5.95/1.56  | |   (21)  set_difference(all_12_2, all_12_2) = all_12_2
% 5.95/1.56  | | 
% 5.95/1.56  | | REDUCE: (9), (20) imply:
% 6.03/1.56  | |   (22)  $i(all_12_2)
% 6.03/1.56  | | 
% 6.03/1.56  | | GROUND_INST: instantiating (3) with all_12_4, all_12_2, all_12_2,
% 6.03/1.56  | |              simplifying with (7), (10), (21), (22) gives:
% 6.03/1.56  | |   (23)   ? [v0: int] : ( ~ (v0 = 0) & in(all_12_4, all_12_2) = v0)
% 6.03/1.56  | | 
% 6.03/1.56  | | DELTA: instantiating (23) with fresh symbol all_30_0 gives:
% 6.03/1.56  | |   (24)   ~ (all_30_0 = 0) & in(all_12_4, all_12_2) = all_30_0
% 6.03/1.56  | | 
% 6.03/1.56  | | ALPHA: (24) implies:
% 6.03/1.56  | |   (25)   ~ (all_30_0 = 0)
% 6.03/1.56  | |   (26)  in(all_12_4, all_12_2) = all_30_0
% 6.03/1.56  | | 
% 6.03/1.56  | | GROUND_INST: instantiating (1) with all_12_4, all_12_2, all_30_0,
% 6.03/1.56  | |              simplifying with (7), (10), (22), (26) gives:
% 6.03/1.56  | |   (27)  all_30_0 = 0
% 6.03/1.56  | | 
% 6.03/1.56  | | REDUCE: (25), (27) imply:
% 6.03/1.56  | |   (28)  $false
% 6.03/1.56  | | 
% 6.03/1.56  | | CLOSE: (28) is inconsistent.
% 6.03/1.56  | | 
% 6.03/1.56  | Case 2:
% 6.03/1.56  | | 
% 6.03/1.56  | |   (29)   ~ (all_12_0 = all_12_2) &  ~ (all_12_3 = all_12_4)
% 6.03/1.56  | | 
% 6.03/1.56  | | ALPHA: (29) implies:
% 6.03/1.56  | |   (30)   ~ (all_12_3 = all_12_4)
% 6.03/1.56  | |   (31)   ~ (all_12_0 = all_12_2)
% 6.03/1.56  | | 
% 6.03/1.56  | | BETA: splitting (14) gives:
% 6.03/1.56  | | 
% 6.03/1.56  | | Case 1:
% 6.03/1.56  | | | 
% 6.03/1.56  | | |   (32)  in(all_12_4, all_12_1) = 0
% 6.03/1.56  | | | 
% 6.03/1.56  | | | GROUND_INST: instantiating (2) with all_12_3, all_12_1, all_12_4,
% 6.03/1.56  | | |              simplifying with (7), (8), (9), (11), (32) gives:
% 6.03/1.56  | | |   (33)  all_12_3 = all_12_4
% 6.03/1.56  | | | 
% 6.03/1.56  | | | REDUCE: (30), (33) imply:
% 6.03/1.56  | | |   (34)  $false
% 6.03/1.56  | | | 
% 6.03/1.56  | | | CLOSE: (34) is inconsistent.
% 6.03/1.56  | | | 
% 6.03/1.56  | | Case 2:
% 6.03/1.56  | | | 
% 6.03/1.56  | | |   (35)  all_12_0 = all_12_2
% 6.03/1.56  | | | 
% 6.03/1.56  | | | REDUCE: (31), (35) imply:
% 6.03/1.56  | | |   (36)  $false
% 6.03/1.56  | | | 
% 6.03/1.56  | | | CLOSE: (36) is inconsistent.
% 6.03/1.56  | | | 
% 6.03/1.56  | | End of split
% 6.03/1.56  | | 
% 6.03/1.57  | End of split
% 6.03/1.57  | 
% 6.03/1.57  End of proof
% 6.03/1.57  % SZS output end Proof for theBenchmark
% 6.03/1.57  
% 6.03/1.57  966ms
%------------------------------------------------------------------------------