%------------------------------------------------------------------------------ % File : Princess---230619 % Problem : SWW642_2 : TPTP v8.1.2. Released v6.1.0. % Transfm : none % Format : tptp % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % Computer : n020.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 : Fri Sep 1 00:50:59 EDT 2023 % Result : Theorem 10.18s 2.20s % Output : Proof 14.52s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.12 % Problem : SWW642_2 : TPTP v8.1.2. Released v6.1.0. % 0.00/0.13 % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % 0.13/0.34 % Computer : n020.cluster.edu % 0.13/0.34 % Model : x86_64 x86_64 % 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.13/0.34 % Memory : 8042.1875MB % 0.13/0.34 % OS : Linux 3.10.0-693.el7.x86_64 % 0.13/0.34 % CPULimit : 300 % 0.13/0.34 % WCLimit : 300 % 0.13/0.34 % DateTime : Sun Aug 27 17:39:29 EDT 2023 % 0.19/0.34 % CPUTime : % 0.19/0.61 ________ _____ % 0.19/0.61 ___ __ \_________(_)________________________________ % 0.19/0.61 __ /_/ /_ ___/_ /__ __ \ ___/ _ \_ ___/_ ___/ % 0.19/0.61 _ ____/_ / _ / _ / / / /__ / __/(__ )_(__ ) % 0.19/0.61 /_/ /_/ /_/ /_/ /_/\___/ \___//____/ /____/ % 0.19/0.61 % 0.19/0.61 A Theorem Prover for First-Order Logic modulo Linear Integer Arithmetic % 0.19/0.61 (2023-06-19) % 0.19/0.61 % 0.19/0.61 (c) Philipp Rümmer, 2009-2023 % 0.19/0.61 Contributors: Peter Backeman, Peter Baumgartner, Angelo Brillout, Zafer Esen, % 0.19/0.61 Amanda Stjerna. % 0.19/0.61 Free software under BSD-3-Clause. % 0.19/0.61 % 0.19/0.61 For more information, visit http://www.philipp.ruemmer.org/princess.shtml % 0.19/0.61 % 0.19/0.61 Loading /export/starexec/sandbox/benchmark/theBenchmark.p ... % 0.19/0.62 Running up to 7 provers in parallel. % 0.19/0.64 Prover 0: Options: +triggersInConjecture +genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1042961893 % 0.19/0.64 Prover 1: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1571432423 % 0.19/0.64 Prover 2: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMinimalAndEmpty -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1065072994 % 0.19/0.64 Prover 3: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1922548996 % 0.19/0.64 Prover 4: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=1868514696 % 0.19/0.64 Prover 5: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMaximal -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=complete -randomSeed=1259561288 % 0.19/0.64 Prover 6: Options: -triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximalOutermost -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1399714365 % 2.84/1.13 Prover 1: Preprocessing ... % 2.84/1.13 Prover 0: Preprocessing ... % 2.84/1.13 Prover 3: Preprocessing ... % 2.84/1.13 Prover 2: Preprocessing ... % 2.84/1.13 Prover 4: Preprocessing ... % 2.84/1.13 Prover 6: Preprocessing ... % 2.84/1.13 Prover 5: Preprocessing ... % 4.70/1.47 Prover 4: Warning: ignoring some quantifiers % 4.70/1.47 Prover 1: Warning: ignoring some quantifiers % 4.70/1.47 Prover 3: Warning: ignoring some quantifiers % 4.70/1.48 Prover 5: Proving ... % 4.70/1.49 Prover 3: Constructing countermodel ... % 4.70/1.49 Prover 2: Proving ... % 4.70/1.49 Prover 4: Constructing countermodel ... % 4.70/1.49 Prover 6: Proving ... % 4.70/1.49 Prover 1: Constructing countermodel ... % 5.60/1.50 Prover 0: Proving ... % 10.18/2.20 Prover 2: proved (1565ms) % 10.18/2.20 % 10.18/2.20 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 10.18/2.20 % 10.18/2.20 Prover 0: stopped % 10.18/2.20 Prover 6: stopped % 10.18/2.21 Prover 3: stopped % 10.18/2.21 Prover 7: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-236303470 % 10.18/2.21 Prover 8: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-200781089 % 10.18/2.21 Prover 5: stopped % 10.18/2.22 Prover 10: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=919308125 % 10.18/2.22 Prover 11: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1509710984 % 10.90/2.23 Prover 13: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=complete -randomSeed=1138197443 % 10.90/2.27 Prover 11: Preprocessing ... % 10.90/2.27 Prover 10: Preprocessing ... % 10.90/2.28 Prover 8: Preprocessing ... % 10.90/2.28 Prover 13: Preprocessing ... % 10.90/2.29 Prover 7: Preprocessing ... % 11.45/2.34 Prover 10: Warning: ignoring some quantifiers % 11.45/2.35 Prover 10: Constructing countermodel ... % 11.45/2.35 Prover 7: Warning: ignoring some quantifiers % 11.96/2.37 Prover 7: Constructing countermodel ... % 11.96/2.38 Prover 8: Warning: ignoring some quantifiers % 11.96/2.38 Prover 11: Warning: ignoring some quantifiers % 11.96/2.39 Prover 11: Constructing countermodel ... % 11.96/2.39 Prover 13: Warning: ignoring some quantifiers % 11.96/2.39 Prover 13: Constructing countermodel ... % 12.16/2.41 Prover 8: Constructing countermodel ... % 13.99/2.73 Prover 4: Found proof (size 30) % 13.99/2.73 Prover 4: proved (2099ms) % 13.99/2.73 Prover 11: stopped % 13.99/2.73 Prover 10: stopped % 13.99/2.73 Prover 7: stopped % 13.99/2.74 Prover 8: stopped % 13.99/2.74 Prover 13: stopped % 13.99/2.74 Prover 1: stopped % 13.99/2.74 % 13.99/2.74 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 13.99/2.74 % 13.99/2.74 % SZS output start Proof for theBenchmark % 13.99/2.74 Assumptions after simplification: % 13.99/2.74 --------------------------------- % 13.99/2.74 % 13.99/2.74 (fact_0) % 13.99/2.75 fact1(0) = 1 % 13.99/2.75 % 13.99/2.75 (fact_n) % 13.99/2.76 ! [v0: int] : ! [v1: int] : ( ~ ($lesseq(1, v0)) | ~ (fact1($sum(v0, -1)) = % 13.99/2.76 v1) | ? [v2: int] : (fact1(v0) = v2 & $product(v0, v1) = v2)) & ! [v0: % 13.99/2.76 int] : ! [v1: int] : ( ~ ($lesseq(1, v0)) | ~ (fact1(v0) = v1) | ? [v2: % 13.99/2.76 int] : (fact1($sum(v0, -1)) = v2 & $product(v0, v2) = v1)) % 13.99/2.76 % 13.99/2.76 (wP_parameter_factorial) % 13.99/2.76 ? [v0: int] : ? [v1: int] : ? [v2: int] : ? [v3: int] : ? [v4: int] : ? % 13.99/2.76 [v5: int] : ? [v6: int] : ? [v7: int] : ? [v8: int] : ? [v9: int] : % 13.99/2.76 ($lesseq(0, v2) & $lesseq(0, v0) & fact1(v2) = v4 & fact1(v0) = v1 & % 13.99/2.76 $product(v3, v4) = v1 & $product(v3, v2) = v5 & (($difference(v7, v2) = -1 & % 13.99/2.76 v6 = v5 & ~ (v9 = v1) & $lesseq(1, v2) & fact1($sum(v2, -1)) = v8 & % 13.99/2.76 $product(v5, v8) = v9) | (v2 = 0 & ~ (v3 = v1)))) % 13.99/2.76 % 13.99/2.76 (function-axioms) % 13.99/2.77 ! [v0: uni] : ! [v1: uni] : ! [v2: uni] : ! [v3: uni] : ! [v4: bool1] : % 13.99/2.77 ! [v5: ty] : (v1 = v0 | ~ (match_bool1(v5, v4, v3, v2) = v1) | ~ % 13.99/2.77 (match_bool1(v5, v4, v3, v2) = v0)) & ! [v0: uni] : ! [v1: uni] : ! [v2: % 13.99/2.77 uni] : ! [v3: ty] : (v1 = v0 | ~ (contents(v3, v2) = v1) | ~ % 13.99/2.77 (contents(v3, v2) = v0)) & ! [v0: uni] : ! [v1: uni] : ! [v2: uni] : ! % 13.99/2.77 [v3: ty] : (v1 = v0 | ~ (mk_ref(v3, v2) = v1) | ~ (mk_ref(v3, v2) = v0)) & % 13.99/2.77 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: uni] : ! % 13.99/2.77 [v3: ty] : (v1 = v0 | ~ (sort1(v3, v2) = v1) | ~ (sort1(v3, v2) = v0)) & ! % 13.99/2.77 [v0: int] : ! [v1: int] : ! [v2: int] : (v1 = v0 | ~ (fact1(v2) = v1) | ~ % 13.99/2.77 (fact1(v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] % 13.99/2.77 : ! [v2: int] : (v1 = v0 | ~ (even1(v2) = v1) | ~ (even1(v2) = v0)) & ! % 13.99/2.77 [v0: ty] : ! [v1: ty] : ! [v2: ty] : (v1 = v0 | ~ (ref(v2) = v1) | ~ % 13.99/2.77 (ref(v2) = v0)) & ! [v0: uni] : ! [v1: uni] : ! [v2: ty] : (v1 = v0 | ~ % 13.99/2.77 (witness1(v2) = v1) | ~ (witness1(v2) = v0)) % 13.99/2.77 % 13.99/2.77 Further assumptions not needed in the proof: % 13.99/2.77 -------------------------------------------- % 13.99/2.77 bool_inversion, compatOrderMult, contents_def1, contents_sort1, even_0, % 13.99/2.77 even_inversion, even_not_odd, even_odd, match_bool_False, match_bool_True, % 13.99/2.77 match_bool_sort1, mk_ref_sort1, ref_inversion1, true_False, tuple0_inversion, % 13.99/2.77 witness_sort1 % 13.99/2.77 % 13.99/2.77 Those formulas are unsatisfiable: % 13.99/2.77 --------------------------------- % 13.99/2.77 % 13.99/2.77 Begin of proof % 13.99/2.77 | % 13.99/2.77 | ALPHA: (fact_n) implies: % 13.99/2.78 | (1) ! [v0: int] : ! [v1: int] : ( ~ ($lesseq(1, v0)) | ~ (fact1(v0) = % 13.99/2.78 | v1) | ? [v2: int] : (fact1($sum(v0, -1)) = v2 & $product(v0, v2) = % 13.99/2.78 | v1)) % 13.99/2.78 | % 13.99/2.78 | ALPHA: (function-axioms) implies: % 13.99/2.78 | (2) ! [v0: int] : ! [v1: int] : ! [v2: int] : (v1 = v0 | ~ (fact1(v2) = % 13.99/2.78 | v1) | ~ (fact1(v2) = v0)) % 13.99/2.78 | % 13.99/2.78 | DELTA: instantiating (wP_parameter_factorial) with fresh symbols all_27_0, % 13.99/2.78 | all_27_1, all_27_2, all_27_3, all_27_4, all_27_5, all_27_6, all_27_7, % 13.99/2.78 | all_27_8, all_27_9 gives: % 13.99/2.78 | (3) $lesseq(0, all_27_7) & $lesseq(0, all_27_9) & fact1(all_27_7) = % 13.99/2.78 | all_27_5 & fact1(all_27_9) = all_27_8 & $product(all_27_6, all_27_5) = % 13.99/2.78 | all_27_8 & $product(all_27_6, all_27_7) = all_27_4 & % 13.99/2.78 | (($difference(all_27_2, all_27_7) = -1 & all_27_3 = all_27_4 & ~ % 13.99/2.78 | (all_27_0 = all_27_8) & $lesseq(1, all_27_7) & fact1($sum(all_27_7, % 13.99/2.78 | -1)) = all_27_1 & $product(all_27_4, all_27_1) = all_27_0) | % 13.99/2.78 | (all_27_7 = 0 & ~ (all_27_6 = all_27_8))) % 13.99/2.78 | % 13.99/2.78 | ALPHA: (3) implies: % 13.99/2.78 | (4) $product(all_27_6, all_27_7) = all_27_4 % 13.99/2.78 | (5) $product(all_27_6, all_27_5) = all_27_8 % 13.99/2.78 | (6) fact1(all_27_7) = all_27_5 % 13.99/2.78 | (7) ($difference(all_27_2, all_27_7) = -1 & all_27_3 = all_27_4 & ~ % 13.99/2.78 | (all_27_0 = all_27_8) & $lesseq(1, all_27_7) & fact1($sum(all_27_7, % 13.99/2.78 | -1)) = all_27_1 & $product(all_27_4, all_27_1) = all_27_0) | % 13.99/2.78 | (all_27_7 = 0 & ~ (all_27_6 = all_27_8)) % 13.99/2.78 | % 13.99/2.78 | GROUND_INST: instantiating (2) with 1, all_27_5, 0, simplifying with (fact_0) % 13.99/2.78 | gives: % 13.99/2.78 | (8) all_27_5 = 1 | ~ (fact1(0) = all_27_5) % 13.99/2.78 | % 13.99/2.78 | GROUND_INST: instantiating (1) with all_27_7, all_27_5, simplifying with (6) % 13.99/2.78 | gives: % 13.99/2.78 | (9) ~ ($lesseq(1, all_27_7)) | ? [v0: int] : (fact1($sum(all_27_7, -1)) = % 13.99/2.78 | v0 & $product(all_27_7, v0) = all_27_5) % 13.99/2.78 | % 13.99/2.78 | BETA: splitting (7) gives: % 13.99/2.78 | % 13.99/2.78 | Case 1: % 13.99/2.78 | | % 13.99/2.79 | | (10) $difference(all_27_2, all_27_7) = -1 & all_27_3 = all_27_4 & ~ % 13.99/2.79 | | (all_27_0 = all_27_8) & $lesseq(1, all_27_7) & fact1($sum(all_27_7, % 13.99/2.79 | | -1)) = all_27_1 & $product(all_27_4, all_27_1) = all_27_0 % 13.99/2.79 | | % 13.99/2.79 | | ALPHA: (10) implies: % 13.99/2.79 | | (11) ~ (all_27_0 = all_27_8) % 13.99/2.79 | | (12) $lesseq(1, all_27_7) % 13.99/2.79 | | (13) $product(all_27_4, all_27_1) = all_27_0 % 13.99/2.79 | | (14) fact1($sum(all_27_7, -1)) = all_27_1 % 13.99/2.79 | | % 13.99/2.79 | | BETA: splitting (9) gives: % 13.99/2.79 | | % 13.99/2.79 | | Case 1: % 13.99/2.79 | | | % 13.99/2.79 | | | (15) $lesseq(all_27_7, 0) % 13.99/2.79 | | | % 13.99/2.79 | | | COMBINE_INEQS: (12), (15) imply: % 13.99/2.79 | | | (16) $false % 13.99/2.79 | | | % 13.99/2.79 | | | CLOSE: (16) is inconsistent. % 13.99/2.79 | | | % 13.99/2.79 | | Case 2: % 13.99/2.79 | | | % 13.99/2.79 | | | (17) ? [v0: int] : (fact1($sum(all_27_7, -1)) = v0 & % 13.99/2.79 | | | $product(all_27_7, v0) = all_27_5) % 13.99/2.79 | | | % 13.99/2.79 | | | DELTA: instantiating (17) with fresh symbol all_192_0 gives: % 13.99/2.79 | | | (18) fact1($sum(all_27_7, -1)) = all_192_0 & $product(all_27_7, % 13.99/2.79 | | | all_192_0) = all_27_5 % 13.99/2.79 | | | % 13.99/2.79 | | | ALPHA: (18) implies: % 13.99/2.79 | | | (19) $product(all_27_7, all_192_0) = all_27_5 % 13.99/2.79 | | | (20) fact1($sum(all_27_7, -1)) = all_192_0 % 13.99/2.79 | | | % 13.99/2.79 | | | GROUND_INST: instantiating (2) with all_27_1, all_192_0, $sum(all_27_7, % 13.99/2.79 | | | -1), simplifying with (14), (20) gives: % 13.99/2.79 | | | (21) all_192_0 = all_27_1 % 13.99/2.79 | | | % 13.99/2.79 | | | REDUCE: (19), (21) imply: % 13.99/2.79 | | | (22) $product(all_27_7, all_27_1) = all_27_5 % 13.99/2.79 | | | % 13.99/2.79 | | | THEORY_AXIOM GroebnerMultiplication: % 13.99/2.79 | | | (23) ! [v0: int] : ! [v1: int] : ! [v2: int] : ! [v3: int] : ! % 13.99/2.79 | | | [v4: int] : ! [v5: int] : ! [v6: int] : (v6 = v0 | ~ % 13.99/2.79 | | | ($product(v4, v5) = v6) | ~ ($product(v2, v3) = v0) | ~ % 13.99/2.79 | | | ($product(v2, v1) = v4) | ~ ($product(v1, v5) = v3)) % 13.99/2.79 | | | % 13.99/2.79 | | | GROUND_INST: instantiating (23) with all_27_8, all_27_7, all_27_6, % 13.99/2.79 | | | all_27_5, all_27_4, all_27_1, all_27_0, simplifying with (4), % 13.99/2.79 | | | (5), (13), (22) gives: % 13.99/2.79 | | | (24) all_27_0 = all_27_8 % 13.99/2.79 | | | % 13.99/2.79 | | | REDUCE: (11), (24) imply: % 13.99/2.79 | | | (25) $false % 13.99/2.79 | | | % 13.99/2.79 | | | CLOSE: (25) is inconsistent. % 13.99/2.79 | | | % 13.99/2.79 | | End of split % 13.99/2.79 | | % 13.99/2.79 | Case 2: % 13.99/2.79 | | % 13.99/2.79 | | (26) all_27_7 = 0 & ~ (all_27_6 = all_27_8) % 13.99/2.79 | | % 13.99/2.79 | | ALPHA: (26) implies: % 13.99/2.79 | | (27) all_27_7 = 0 % 13.99/2.79 | | (28) ~ (all_27_6 = all_27_8) % 13.99/2.79 | | % 13.99/2.79 | | REDUCE: (6), (27) imply: % 13.99/2.79 | | (29) fact1(0) = all_27_5 % 13.99/2.79 | | % 13.99/2.79 | | BETA: splitting (8) gives: % 13.99/2.79 | | % 13.99/2.79 | | Case 1: % 13.99/2.79 | | | % 13.99/2.79 | | | (30) ~ (fact1(0) = all_27_5) % 13.99/2.79 | | | % 13.99/2.79 | | | PRED_UNIFY: (29), (30) imply: % 14.52/2.79 | | | (31) $false % 14.52/2.79 | | | % 14.52/2.79 | | | CLOSE: (31) is inconsistent. % 14.52/2.79 | | | % 14.52/2.79 | | Case 2: % 14.52/2.79 | | | % 14.52/2.80 | | | (32) all_27_5 = 1 % 14.52/2.80 | | | % 14.52/2.80 | | | REDUCE: (5), (32) imply: % 14.52/2.80 | | | (33) $product(all_27_6, 1) = all_27_8 % 14.52/2.80 | | | % 14.52/2.80 | | | THEORY_AXIOM GroebnerMultiplication: % 14.52/2.80 | | | (34) ! [v0: int] : ! [v1: int] : (v1 = v0 | ~ ($product(v1, 1) = % 14.52/2.80 | | | v0)) % 14.52/2.80 | | | % 14.52/2.80 | | | GROUND_INST: instantiating (34) with all_27_8, all_27_6, simplifying with % 14.52/2.80 | | | (33) gives: % 14.52/2.80 | | | (35) all_27_6 = all_27_8 % 14.52/2.80 | | | % 14.52/2.80 | | | REDUCE: (28), (35) imply: % 14.52/2.80 | | | (36) $false % 14.52/2.80 | | | % 14.52/2.80 | | | CLOSE: (36) is inconsistent. % 14.52/2.80 | | | % 14.52/2.80 | | End of split % 14.52/2.80 | | % 14.52/2.80 | End of split % 14.52/2.80 | % 14.52/2.80 End of proof % 14.52/2.80 % SZS output end Proof for theBenchmark % 14.52/2.80 % 14.52/2.80 2184ms %------------------------------------------------------------------------------