TSTP Solution File: NUM854+2 by ePrincess---1.0
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : ePrincess---1.0
% Problem : NUM854+2 : TPTP v8.1.0. Released v4.1.0.
% Transfm : none
% Format : tptp:raw
% Command : ePrincess-casc -timeout=%d %s
% Computer : n015.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 : Mon Jul 18 08:49:12 EDT 2022
% Result : Theorem 2.65s 1.27s
% Output : Proof 3.98s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.11/0.11 % Problem : NUM854+2 : TPTP v8.1.0. Released v4.1.0.
% 0.11/0.12 % Command : ePrincess-casc -timeout=%d %s
% 0.11/0.33 % Computer : n015.cluster.edu
% 0.11/0.33 % Model : x86_64 x86_64
% 0.11/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.33 % Memory : 8042.1875MB
% 0.11/0.33 % OS : Linux 3.10.0-693.el7.x86_64
% 0.11/0.33 % CPULimit : 300
% 0.11/0.33 % WCLimit : 600
% 0.11/0.33 % DateTime : Wed Jul 6 23:50:04 EDT 2022
% 0.11/0.33 % CPUTime :
% 0.17/0.57 ____ _
% 0.17/0.57 ___ / __ \_____(_)___ ________ __________
% 0.17/0.57 / _ \/ /_/ / ___/ / __ \/ ___/ _ \/ ___/ ___/
% 0.17/0.57 / __/ ____/ / / / / / / /__/ __(__ |__ )
% 0.17/0.57 \___/_/ /_/ /_/_/ /_/\___/\___/____/____/
% 0.17/0.57
% 0.17/0.57 A Theorem Prover for First-Order Logic
% 0.17/0.57 (ePrincess v.1.0)
% 0.17/0.57
% 0.17/0.57 (c) Philipp Rümmer, 2009-2015
% 0.17/0.57 (c) Peter Backeman, 2014-2015
% 0.17/0.57 (contributions by Angelo Brillout, Peter Baumgartner)
% 0.17/0.57 Free software under GNU Lesser General Public License (LGPL).
% 0.17/0.57 Bug reports to peter@backeman.se
% 0.17/0.57
% 0.17/0.57 For more information, visit http://user.uu.se/~petba168/breu/
% 0.17/0.57
% 0.17/0.57 Loading /export/starexec/sandbox2/benchmark/theBenchmark.p ...
% 0.64/0.62 Prover 0: Options: -triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMaximal -resolutionMethod=nonUnifying +ignoreQuantifiers -generateTriggers=all
% 1.72/0.91 Prover 0: Preprocessing ...
% 2.22/1.14 Prover 0: Warning: ignoring some quantifiers
% 2.22/1.16 Prover 0: Constructing countermodel ...
% 2.65/1.27 Prover 0: proved (644ms)
% 2.65/1.27
% 2.65/1.27 No countermodel exists, formula is valid
% 2.65/1.27 % SZS status Theorem for theBenchmark
% 2.65/1.27
% 2.65/1.27 Generating proof ... Warning: ignoring some quantifiers
% 3.78/1.51 found it (size 4)
% 3.78/1.51
% 3.78/1.51 % SZS output start Proof for theBenchmark
% 3.78/1.51 Assumed formulas after preprocessing and simplification:
% 3.78/1.51 | (0) ? [v0] : ? [v1] : (vmul(vd509, vd511) = v1 & vmul(vd508, vd511) = v0 & greater(vd511, vd512) & greater(vd508, vd509) & ~ greater(v0, v1) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ! [v7] : ( ~ (vplus(v5, v6) = v7) | ~ (vmul(v2, v4) = v6) | ~ (vmul(v2, v3) = v5) | ? [v8] : (vplus(v3, v4) = v8 & vmul(v2, v8) = v7)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (vplus(v3, v4) = v5) | ~ (vmul(v2, v5) = v6) | ? [v7] : ? [v8] : (vplus(v7, v8) = v6 & vmul(v2, v4) = v8 & vmul(v2, v3) = v7)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (vmul(v5, v4) = v6) | ~ (vmul(v2, v3) = v5) | ? [v7] : (vmul(v3, v4) = v7 & vmul(v2, v7) = v6)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (vmul(v4, v3) = v6) | ~ (vmul(v2, v3) = v5) | ~ less(v5, v6) | less(v2, v4)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (vmul(v4, v3) = v6) | ~ (vmul(v2, v3) = v5) | ~ greater(v5, v6) | greater(v2, v4)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (vmul(v4, v2) = v6) | ~ (vmul(v3, v2) = v5) | ~ less(v3, v4) | less(v5, v6)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (vmul(v4, v2) = v6) | ~ (vmul(v3, v2) = v5) | ~ greater(v3, v4) | greater(v5, v6)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (vmul(v3, v4) = v5) | ~ (vmul(v2, v5) = v6) | ? [v7] : (vmul(v7, v4) = v6 & vmul(v2, v3) = v7)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : (v5 = v4 | ~ (vmul(v3, v2) = v5) | ~ (vmul(v3, v2) = v4)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : (v4 = v2 | ~ (vmul(v4, v3) = v5) | ~ (vmul(v2, v3) = v5)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : (v3 = v2 | ~ (vplus(v5, v4) = v3) | ~ (vplus(v5, v4) = v2)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : (v3 = v2 | ~ (vmul(v5, v4) = v3) | ~ (vmul(v5, v4) = v2)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ( ~ (vsucc(v3) = v4) | ~ (vmul(v2, v4) = v5) | ? [v6] : (vplus(v6, v2) = v5 & vmul(v2, v3) = v6)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ( ~ (vsucc(v2) = v4) | ~ (vmul(v4, v3) = v5) | ? [v6] : (vplus(v6, v3) = v5 & vmul(v2, v3) = v6)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ( ~ (vplus(v4, v3) = v5) | ~ (vmul(v2, v3) = v4) | ? [v6] : (vsucc(v2) = v6 & vmul(v6, v3) = v5)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ( ~ (vplus(v4, v2) = v5) | ~ (vmul(v2, v3) = v4) | ? [v6] : (vsucc(v3) = v6 & vmul(v2, v6) = v5)) & ! [v2] : ! [v3] : ! [v4] : ! [v5] : ( ~ (vplus(v3, v5) = v2) | ~ (vplus(v2, v4) = v3)) & ! [v2] : ! [v3] : ! [v4] : (v3 = v2 | ~ (vsucc(v4) = v3) | ~ (vsucc(v4) = v2)) & ! [v2] : ! [v3] : ! [v4] : ( ~ (vplus(v3, v4) = v2) | less(v3, v2)) & ! [v2] : ! [v3] : ! [v4] : ( ~ (vplus(v2, v4) = v3) | greater(v3, v2)) & ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v3, v2) = v4) | vmul(v2, v3) = v4) & ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v3) = v4) | vmul(v3, v2) = v4) & ! [v2] : ! [v3] : (v3 = v2 | ~ (vmul(v2, v1) = v3)) & ! [v2] : ! [v3] : (v3 = v2 | ~ (vmul(v1, v2) = v3)) & ! [v2] : ! [v3] : ~ (vplus(v2, v3) = v2) & ! [v2] : ! [v3] : ( ~ less(v3, v2) | ? [v4] : vplus(v3, v4) = v2) & ! [v2] : ! [v3] : ( ~ less(v2, v3) | ~ greater(v2, v3)) & ! [v2] : ! [v3] : ( ~ less(v2, v3) | greater(v3, v2)) & ! [v2] : ! [v3] : ( ~ greater(v3, v2) | ? [v4] : vplus(v2, v4) = v3) & ! [v2] : ! [v3] : ( ~ greater(v2, v3) | less(v3, v2)) & ! [v2] : ~ less(v2, v2) & ! [v2] : ~ greater(v2, v2) & ? [v2] : ? [v3] : (v3 = v2 | less(v2, v3) | greater(v2, v3)) & ? [v2] : ? [v3] : (v3 = v2 | ? [v4] : ? [v5] : ((v5 = v3 & vplus(v2, v4) = v3) | (v5 = v2 & vplus(v3, v4) = v2))))
% 3.98/1.55 | Instantiating (0) with all_0_0_0, all_0_1_1 yields:
% 3.98/1.55 | (1) vmul(vd509, vd511) = all_0_0_0 & vmul(vd508, vd511) = all_0_1_1 & greater(vd511, vd512) & greater(vd508, vd509) & ~ greater(all_0_1_1, all_0_0_0) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ! [v5] : ( ~ (vplus(v3, v4) = v5) | ~ (vmul(v0, v2) = v4) | ~ (vmul(v0, v1) = v3) | ? [v6] : (vplus(v1, v2) = v6 & vmul(v0, v6) = v5)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vplus(v1, v2) = v3) | ~ (vmul(v0, v3) = v4) | ? [v5] : ? [v6] : (vplus(v5, v6) = v4 & vmul(v0, v2) = v6 & vmul(v0, v1) = v5)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v3, v2) = v4) | ~ (vmul(v0, v1) = v3) | ? [v5] : (vmul(v1, v2) = v5 & vmul(v0, v5) = v4)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v1) = v4) | ~ (vmul(v0, v1) = v3) | ~ less(v3, v4) | less(v0, v2)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v1) = v4) | ~ (vmul(v0, v1) = v3) | ~ greater(v3, v4) | greater(v0, v2)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v0) = v4) | ~ (vmul(v1, v0) = v3) | ~ less(v1, v2) | less(v3, v4)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v0) = v4) | ~ (vmul(v1, v0) = v3) | ~ greater(v1, v2) | greater(v3, v4)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v1, v2) = v3) | ~ (vmul(v0, v3) = v4) | ? [v5] : (vmul(v5, v2) = v4 & vmul(v0, v1) = v5)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v3 = v2 | ~ (vmul(v1, v0) = v3) | ~ (vmul(v1, v0) = v2)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v2 = v0 | ~ (vmul(v2, v1) = v3) | ~ (vmul(v0, v1) = v3)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v1 = v0 | ~ (vplus(v3, v2) = v1) | ~ (vplus(v3, v2) = v0)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v1 = v0 | ~ (vmul(v3, v2) = v1) | ~ (vmul(v3, v2) = v0)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vsucc(v1) = v2) | ~ (vmul(v0, v2) = v3) | ? [v4] : (vplus(v4, v0) = v3 & vmul(v0, v1) = v4)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vsucc(v0) = v2) | ~ (vmul(v2, v1) = v3) | ? [v4] : (vplus(v4, v1) = v3 & vmul(v0, v1) = v4)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vplus(v2, v1) = v3) | ~ (vmul(v0, v1) = v2) | ? [v4] : (vsucc(v0) = v4 & vmul(v4, v1) = v3)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vplus(v2, v0) = v3) | ~ (vmul(v0, v1) = v2) | ? [v4] : (vsucc(v1) = v4 & vmul(v0, v4) = v3)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vplus(v1, v3) = v0) | ~ (vplus(v0, v2) = v1)) & ! [v0] : ! [v1] : ! [v2] : (v1 = v0 | ~ (vsucc(v2) = v1) | ~ (vsucc(v2) = v0)) & ! [v0] : ! [v1] : ! [v2] : ( ~ (vplus(v1, v2) = v0) | less(v1, v0)) & ! [v0] : ! [v1] : ! [v2] : ( ~ (vplus(v0, v2) = v1) | greater(v1, v0)) & ! [v0] : ! [v1] : ! [v2] : ( ~ (vmul(v1, v0) = v2) | vmul(v0, v1) = v2) & ! [v0] : ! [v1] : ! [v2] : ( ~ (vmul(v0, v1) = v2) | vmul(v1, v0) = v2) & ! [v0] : ! [v1] : (v1 = v0 | ~ (vmul(v0, v1) = v1)) & ! [v0] : ! [v1] : (v1 = v0 | ~ (vmul(v1, v0) = v1)) & ! [v0] : ! [v1] : ~ (vplus(v0, v1) = v0) & ! [v0] : ! [v1] : ( ~ less(v1, v0) | ? [v2] : vplus(v1, v2) = v0) & ! [v0] : ! [v1] : ( ~ less(v0, v1) | ~ greater(v0, v1)) & ! [v0] : ! [v1] : ( ~ less(v0, v1) | greater(v1, v0)) & ! [v0] : ! [v1] : ( ~ greater(v1, v0) | ? [v2] : vplus(v0, v2) = v1) & ! [v0] : ! [v1] : ( ~ greater(v0, v1) | less(v1, v0)) & ! [v0] : ~ less(v0, v0) & ! [v0] : ~ greater(v0, v0) & ? [v0] : ? [v1] : (v1 = v0 | less(v0, v1) | greater(v0, v1)) & ? [v0] : ? [v1] : (v1 = v0 | ? [v2] : ? [v3] : ((v3 = v1 & vplus(v0, v2) = v1) | (v3 = v0 & vplus(v1, v2) = v0)))
% 3.98/1.56 |
% 3.98/1.56 | Applying alpha-rule on (1) yields:
% 3.98/1.56 | (2) ! [v0] : ! [v1] : ~ (vplus(v0, v1) = v0)
% 3.98/1.56 | (3) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vsucc(v1) = v2) | ~ (vmul(v0, v2) = v3) | ? [v4] : (vplus(v4, v0) = v3 & vmul(v0, v1) = v4))
% 3.98/1.56 | (4) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vsucc(v0) = v2) | ~ (vmul(v2, v1) = v3) | ? [v4] : (vplus(v4, v1) = v3 & vmul(v0, v1) = v4))
% 3.98/1.56 | (5) vmul(vd508, vd511) = all_0_1_1
% 3.98/1.56 | (6) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v1, v2) = v3) | ~ (vmul(v0, v3) = v4) | ? [v5] : (vmul(v5, v2) = v4 & vmul(v0, v1) = v5))
% 3.98/1.56 | (7) ? [v0] : ? [v1] : (v1 = v0 | ? [v2] : ? [v3] : ((v3 = v1 & vplus(v0, v2) = v1) | (v3 = v0 & vplus(v1, v2) = v0)))
% 3.98/1.57 | (8) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v0) = v4) | ~ (vmul(v1, v0) = v3) | ~ less(v1, v2) | less(v3, v4))
% 3.98/1.57 | (9) ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v3 = v2 | ~ (vmul(v1, v0) = v3) | ~ (vmul(v1, v0) = v2))
% 3.98/1.57 | (10) ! [v0] : ! [v1] : (v1 = v0 | ~ (vmul(v1, v0) = v1))
% 3.98/1.57 | (11) ~ greater(all_0_1_1, all_0_0_0)
% 3.98/1.57 | (12) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v1) = v4) | ~ (vmul(v0, v1) = v3) | ~ greater(v3, v4) | greater(v0, v2))
% 3.98/1.57 | (13) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v3, v2) = v4) | ~ (vmul(v0, v1) = v3) | ? [v5] : (vmul(v1, v2) = v5 & vmul(v0, v5) = v4))
% 3.98/1.57 | (14) ! [v0] : ! [v1] : (v1 = v0 | ~ (vmul(v0, v1) = v1))
% 3.98/1.57 | (15) ! [v0] : ! [v1] : ! [v2] : ( ~ (vplus(v1, v2) = v0) | less(v1, v0))
% 3.98/1.57 | (16) ! [v0] : ! [v1] : ! [v2] : (v1 = v0 | ~ (vsucc(v2) = v1) | ~ (vsucc(v2) = v0))
% 3.98/1.57 | (17) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vplus(v1, v2) = v3) | ~ (vmul(v0, v3) = v4) | ? [v5] : ? [v6] : (vplus(v5, v6) = v4 & vmul(v0, v2) = v6 & vmul(v0, v1) = v5))
% 3.98/1.57 | (18) ! [v0] : ~ greater(v0, v0)
% 3.98/1.57 | (19) ! [v0] : ! [v1] : ( ~ less(v0, v1) | ~ greater(v0, v1))
% 3.98/1.57 | (20) ! [v0] : ~ less(v0, v0)
% 3.98/1.57 | (21) ! [v0] : ! [v1] : ( ~ greater(v0, v1) | less(v1, v0))
% 3.98/1.57 | (22) ! [v0] : ! [v1] : ( ~ less(v0, v1) | greater(v1, v0))
% 3.98/1.57 | (23) ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v1 = v0 | ~ (vmul(v3, v2) = v1) | ~ (vmul(v3, v2) = v0))
% 3.98/1.57 | (24) ! [v0] : ! [v1] : ! [v2] : ( ~ (vplus(v0, v2) = v1) | greater(v1, v0))
% 3.98/1.57 | (25) ! [v0] : ! [v1] : ! [v2] : ( ~ (vmul(v0, v1) = v2) | vmul(v1, v0) = v2)
% 3.98/1.57 | (26) ! [v0] : ! [v1] : ! [v2] : ( ~ (vmul(v1, v0) = v2) | vmul(v0, v1) = v2)
% 3.98/1.57 | (27) vmul(vd509, vd511) = all_0_0_0
% 3.98/1.57 | (28) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ! [v5] : ( ~ (vplus(v3, v4) = v5) | ~ (vmul(v0, v2) = v4) | ~ (vmul(v0, v1) = v3) | ? [v6] : (vplus(v1, v2) = v6 & vmul(v0, v6) = v5))
% 3.98/1.57 | (29) ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v1 = v0 | ~ (vplus(v3, v2) = v1) | ~ (vplus(v3, v2) = v0))
% 3.98/1.57 | (30) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v0) = v4) | ~ (vmul(v1, v0) = v3) | ~ greater(v1, v2) | greater(v3, v4))
% 3.98/1.57 | (31) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vplus(v2, v0) = v3) | ~ (vmul(v0, v1) = v2) | ? [v4] : (vsucc(v1) = v4 & vmul(v0, v4) = v3))
% 3.98/1.57 | (32) ! [v0] : ! [v1] : ( ~ greater(v1, v0) | ? [v2] : vplus(v0, v2) = v1)
% 3.98/1.57 | (33) greater(vd511, vd512)
% 3.98/1.57 | (34) ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v2 = v0 | ~ (vmul(v2, v1) = v3) | ~ (vmul(v0, v1) = v3))
% 3.98/1.57 | (35) greater(vd508, vd509)
% 3.98/1.57 | (36) ! [v0] : ! [v1] : ( ~ less(v1, v0) | ? [v2] : vplus(v1, v2) = v0)
% 3.98/1.57 | (37) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (vmul(v2, v1) = v4) | ~ (vmul(v0, v1) = v3) | ~ less(v3, v4) | less(v0, v2))
% 3.98/1.57 | (38) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vplus(v2, v1) = v3) | ~ (vmul(v0, v1) = v2) | ? [v4] : (vsucc(v0) = v4 & vmul(v4, v1) = v3))
% 3.98/1.58 | (39) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (vplus(v1, v3) = v0) | ~ (vplus(v0, v2) = v1))
% 3.98/1.58 | (40) ? [v0] : ? [v1] : (v1 = v0 | less(v0, v1) | greater(v0, v1))
% 3.98/1.58 |
% 3.98/1.58 | Instantiating formula (30) with all_0_0_0, all_0_1_1, vd509, vd508, vd511 and discharging atoms vmul(vd509, vd511) = all_0_0_0, vmul(vd508, vd511) = all_0_1_1, greater(vd508, vd509), ~ greater(all_0_1_1, all_0_0_0), yields:
% 3.98/1.58 | (41) $false
% 3.98/1.58 |
% 3.98/1.58 |-The branch is then unsatisfiable
% 3.98/1.58 % SZS output end Proof for theBenchmark
% 3.98/1.58
% 3.98/1.58 997ms
%------------------------------------------------------------------------------