%------------------------------------------------------------------------------ % File : ePrincess---1.0 % Problem : SEU386+1 : TPTP v8.1.0. Released v3.3.0. % Transfm : none % Format : tptp:raw % Command : ePrincess-casc -timeout=%d %s % Computer : n017.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 : Tue Jul 19 08:49:24 EDT 2022 % Result : Theorem 3.40s 1.51s % Output : Proof 5.62s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.11/0.12 % Problem : SEU386+1 : TPTP v8.1.0. Released v3.3.0. % 0.11/0.12 % Command : ePrincess-casc -timeout=%d %s % 0.12/0.33 % Computer : n017.cluster.edu % 0.12/0.33 % Model : x86_64 x86_64 % 0.12/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.12/0.33 % Memory : 8042.1875MB % 0.12/0.33 % OS : Linux 3.10.0-693.el7.x86_64 % 0.12/0.33 % CPULimit : 300 % 0.12/0.33 % WCLimit : 600 % 0.12/0.33 % DateTime : Sun Jun 19 08:12:13 EDT 2022 % 0.12/0.33 % CPUTime : % 0.18/0.57 ____ _ % 0.18/0.57 ___ / __ \_____(_)___ ________ __________ % 0.18/0.57 / _ \/ /_/ / ___/ / __ \/ ___/ _ \/ ___/ ___/ % 0.18/0.57 / __/ ____/ / / / / / / /__/ __(__ |__ ) % 0.18/0.57 \___/_/ /_/ /_/_/ /_/\___/\___/____/____/ % 0.18/0.57 % 0.18/0.57 A Theorem Prover for First-Order Logic % 0.18/0.58 (ePrincess v.1.0) % 0.18/0.58 % 0.18/0.58 (c) Philipp Rümmer, 2009-2015 % 0.18/0.58 (c) Peter Backeman, 2014-2015 % 0.18/0.58 (contributions by Angelo Brillout, Peter Baumgartner) % 0.18/0.58 Free software under GNU Lesser General Public License (LGPL). % 0.18/0.58 Bug reports to peter@backeman.se % 0.18/0.58 % 0.18/0.58 For more information, visit http://user.uu.se/~petba168/breu/ % 0.18/0.58 % 0.18/0.58 Loading /export/starexec/sandbox/benchmark/theBenchmark.p ... % 0.69/0.65 Prover 0: Options: -triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMaximal -resolutionMethod=nonUnifying +ignoreQuantifiers -generateTriggers=all % 1.57/1.01 Prover 0: Preprocessing ... % 2.39/1.26 Prover 0: Warning: ignoring some quantifiers % 2.39/1.28 Prover 0: Constructing countermodel ... % 3.40/1.51 Prover 0: proved (864ms) % 3.40/1.51 % 3.40/1.51 No countermodel exists, formula is valid % 3.40/1.51 % SZS status Theorem for theBenchmark % 3.40/1.51 % 3.40/1.51 Generating proof ... Warning: ignoring some quantifiers % 4.92/1.88 found it (size 36) % 4.92/1.88 % 4.92/1.88 % SZS output start Proof for theBenchmark % 4.92/1.88 Assumed formulas after preprocessing and simplification: % 4.92/1.88 | (0) ? [v0] : ? [v1] : ? [v2] : ? [v3] : ? [v4] : ? [v5] : ? [v6] : ? [v7] : ? [v8] : ? [v9] : ? [v10] : ? [v11] : (the_carrier(v0) = v1 & lim_points_of_net(v0, v2) = v3 & one_sorted_str(v9) & one_sorted_str(v5) & rel_str(v11) & net_str(v2, v0) & directed_relstr(v2) & transitive_relstr(v2) & top_str(v10) & top_str(v0) & topological_space(v0) & element(v4, v1) & finite(v8) & empty(v7) & empty(empty_set) & in(v4, v3) & ~ is_a_cluster_point_of_netstr(v0, v2, v4) & ~ empty_carrier(v5) & ~ empty_carrier(v2) & ~ empty_carrier(v0) & ~ empty(v8) & ~ empty(v6) & ! [v12] : ! [v13] : ! [v14] : ! [v15] : ! [v16] : ( ~ (the_carrier(v12) = v13) | ~ is_a_cluster_point_of_netstr(v12, v14, v15) | ~ point_neighbourhood(v16, v12, v15) | ~ net_str(v14, v12) | ~ top_str(v12) | ~ topological_space(v12) | ~ element(v15, v13) | is_often_in(v12, v14, v16) | empty_carrier(v14) | empty_carrier(v12)) & ! [v12] : ! [v13] : ! [v14] : ! [v15] : (v13 = v12 | ~ (lim_points_of_net(v15, v14) = v13) | ~ (lim_points_of_net(v15, v14) = v12)) & ! [v12] : ! [v13] : ! [v14] : ! [v15] : ( ~ (the_carrier(v12) = v13) | ~ net_str(v14, v12) | ~ top_str(v12) | ~ topological_space(v12) | ~ element(v15, v13) | is_a_cluster_point_of_netstr(v12, v14, v15) | empty_carrier(v14) | empty_carrier(v12) | ? [v16] : (point_neighbourhood(v16, v12, v15) & ~ is_often_in(v12, v14, v16))) & ! [v12] : ! [v13] : ! [v14] : ! [v15] : ( ~ (powerset(v14) = v15) | ~ element(v13, v15) | ~ empty(v14) | ~ in(v12, v13)) & ! [v12] : ! [v13] : ! [v14] : ! [v15] : ( ~ (powerset(v14) = v15) | ~ element(v13, v15) | ~ in(v12, v13) | element(v12, v14)) & ! [v12] : ! [v13] : ! [v14] : (v13 = v12 | ~ (the_carrier(v14) = v13) | ~ (the_carrier(v14) = v12)) & ! [v12] : ! [v13] : ! [v14] : (v13 = v12 | ~ (powerset(v14) = v13) | ~ (powerset(v14) = v12)) & ! [v12] : ! [v13] : ! [v14] : ( ~ (the_carrier(v12) = v14) | ~ top_str(v12) | ~ topological_space(v12) | ~ element(v13, v14) | empty_carrier(v12) | ? [v15] : (powerset(v14) = v15 & ! [v16] : ( ~ point_neighbourhood(v16, v12, v13) | element(v16, v15)))) & ! [v12] : ! [v13] : ! [v14] : ( ~ (the_carrier(v12) = v14) | ~ top_str(v12) | ~ topological_space(v12) | ~ element(v13, v14) | empty_carrier(v12) | ? [v15] : point_neighbourhood(v15, v12, v13)) & ! [v12] : ! [v13] : ! [v14] : ( ~ (lim_points_of_net(v12, v13) = v14) | ~ net_str(v13, v12) | ~ directed_relstr(v13) | ~ transitive_relstr(v13) | ~ top_str(v12) | ~ topological_space(v12) | empty_carrier(v13) | empty_carrier(v12) | ? [v15] : ? [v16] : (the_carrier(v12) = v15 & powerset(v15) = v16 & element(v14, v16))) & ! [v12] : ! [v13] : ! [v14] : ( ~ (powerset(v13) = v14) | ~ subset(v12, v13) | element(v12, v14)) & ! [v12] : ! [v13] : ! [v14] : ( ~ (powerset(v13) = v14) | ~ element(v12, v14) | subset(v12, v13)) & ! [v12] : ! [v13] : ! [v14] : ( ~ (powerset(v12) = v13) | ~ element(v14, v13) | ~ finite(v12) | finite(v14)) & ! [v12] : ! [v13] : ! [v14] : ( ~ one_sorted_str(v12) | ~ is_eventually_in(v12, v13, v14) | ~ net_str(v13, v12) | ~ directed_relstr(v13) | ~ transitive_relstr(v13) | is_often_in(v12, v13, v14) | empty_carrier(v13) | empty_carrier(v12)) & ! [v12] : ! [v13] : (v13 = v12 | ~ empty(v13) | ~ empty(v12)) & ! [v12] : ! [v13] : ( ~ (the_carrier(v12) = v13) | ~ one_sorted_str(v12) | ~ empty(v13) | empty_carrier(v12)) & ! [v12] : ! [v13] : ( ~ (the_carrier(v12) = v13) | ~ one_sorted_str(v12) | empty_carrier(v12) | ? [v14] : ? [v15] : (powerset(v13) = v14 & element(v15, v14) & ~ empty(v15))) & ! [v12] : ! [v13] : ( ~ (the_carrier(v12) = v13) | ~ top_str(v12) | ~ topological_space(v12) | empty_carrier(v12) | ? [v14] : (powerset(v13) = v14 & ! [v15] : ! [v16] : ! [v17] : ! [v18] : ( ~ (lim_points_of_net(v12, v15) = v16) | ~ point_neighbourhood(v18, v12, v17) | ~ net_str(v15, v12) | ~ directed_relstr(v15) | ~ transitive_relstr(v15) | ~ element(v17, v13) | ~ element(v16, v14) | ~ in(v17, v16) | is_eventually_in(v12, v15, v18) | empty_carrier(v15)) & ! [v15] : ! [v16] : ! [v17] : (v17 = v16 | ~ (lim_points_of_net(v12, v15) = v16) | ~ net_str(v15, v12) | ~ directed_relstr(v15) | ~ transitive_relstr(v15) | ~ element(v17, v14) | empty_carrier(v15) | ? [v18] : ? [v19] : (element(v18, v13) & ( ~ in(v18, v17) | (point_neighbourhood(v19, v12, v18) & ~ is_eventually_in(v12, v15, v19))) & (in(v18, v17) | ! [v20] : ( ~ point_neighbourhood(v20, v12, v18) | is_eventually_in(v12, v15, v20))))) & ! [v15] : ! [v16] : ! [v17] : ( ~ (lim_points_of_net(v12, v15) = v16) | ~ net_str(v15, v12) | ~ directed_relstr(v15) | ~ transitive_relstr(v15) | ~ element(v17, v13) | ~ element(v16, v14) | empty_carrier(v15) | in(v17, v16) | ? [v18] : (point_neighbourhood(v18, v12, v17) & ~ is_eventually_in(v12, v15, v18))))) & ! [v12] : ! [v13] : ( ~ (powerset(v12) = v13) | ~ empty(v13)) & ! [v12] : ! [v13] : ( ~ (powerset(v12) = v13) | diff_closed(v13)) & ! [v12] : ! [v13] : ( ~ (powerset(v12) = v13) | cup_closed(v13)) & ! [v12] : ! [v13] : ( ~ (powerset(v12) = v13) | preboolean(v13)) & ! [v12] : ! [v13] : ( ~ (powerset(v12) = v13) | empty(v12) | ? [v14] : (element(v14, v13) & finite(v14) & ~ empty(v14))) & ! [v12] : ! [v13] : ( ~ one_sorted_str(v12) | ~ net_str(v13, v12) | rel_str(v13)) & ! [v12] : ! [v13] : ( ~ element(v12, v13) | empty(v13) | in(v12, v13)) & ! [v12] : ! [v13] : ( ~ empty(v13) | ~ in(v12, v13)) & ! [v12] : ! [v13] : ( ~ in(v13, v12) | ~ in(v12, v13)) & ! [v12] : ! [v13] : ( ~ in(v12, v13) | element(v12, v13)) & ! [v12] : (v12 = empty_set | ~ empty(v12)) & ! [v12] : ( ~ one_sorted_str(v12) | ? [v13] : net_str(v13, v12)) & ! [v12] : ( ~ rel_str(v12) | one_sorted_str(v12)) & ! [v12] : ( ~ top_str(v12) | one_sorted_str(v12)) & ! [v12] : ( ~ diff_closed(v12) | ~ cup_closed(v12) | preboolean(v12)) & ! [v12] : ( ~ preboolean(v12) | diff_closed(v12)) & ! [v12] : ( ~ preboolean(v12) | cup_closed(v12)) & ! [v12] : ( ~ empty(v12) | function(v12)) & ! [v12] : ( ~ empty(v12) | finite(v12)) & ? [v12] : ? [v13] : element(v13, v12) & ? [v12] : subset(v12, v12)) % 5.30/1.93 | Instantiating (0) with all_0_0_0, all_0_1_1, all_0_2_2, all_0_3_3, all_0_4_4, all_0_5_5, all_0_6_6, all_0_7_7, all_0_8_8, all_0_9_9, all_0_10_10, all_0_11_11 yields: % 5.30/1.93 | (1) the_carrier(all_0_11_11) = all_0_10_10 & lim_points_of_net(all_0_11_11, all_0_9_9) = all_0_8_8 & one_sorted_str(all_0_2_2) & one_sorted_str(all_0_6_6) & rel_str(all_0_0_0) & net_str(all_0_9_9, all_0_11_11) & directed_relstr(all_0_9_9) & transitive_relstr(all_0_9_9) & top_str(all_0_1_1) & top_str(all_0_11_11) & topological_space(all_0_11_11) & element(all_0_7_7, all_0_10_10) & finite(all_0_3_3) & empty(all_0_4_4) & empty(empty_set) & in(all_0_7_7, all_0_8_8) & ~ is_a_cluster_point_of_netstr(all_0_11_11, all_0_9_9, all_0_7_7) & ~ empty_carrier(all_0_6_6) & ~ empty_carrier(all_0_9_9) & ~ empty_carrier(all_0_11_11) & ~ empty(all_0_3_3) & ~ empty(all_0_5_5) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (the_carrier(v0) = v1) | ~ is_a_cluster_point_of_netstr(v0, v2, v3) | ~ point_neighbourhood(v4, v0, v3) | ~ net_str(v2, v0) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v3, v1) | is_often_in(v0, v2, v4) | empty_carrier(v2) | empty_carrier(v0)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v1 = v0 | ~ (lim_points_of_net(v3, v2) = v1) | ~ (lim_points_of_net(v3, v2) = v0)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (the_carrier(v0) = v1) | ~ net_str(v2, v0) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v3, v1) | is_a_cluster_point_of_netstr(v0, v2, v3) | empty_carrier(v2) | empty_carrier(v0) | ? [v4] : (point_neighbourhood(v4, v0, v3) & ~ is_often_in(v0, v2, v4))) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (powerset(v2) = v3) | ~ element(v1, v3) | ~ empty(v2) | ~ in(v0, v1)) & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (powerset(v2) = v3) | ~ element(v1, v3) | ~ in(v0, v1) | element(v0, v2)) & ! [v0] : ! [v1] : ! [v2] : (v1 = v0 | ~ (the_carrier(v2) = v1) | ~ (the_carrier(v2) = v0)) & ! [v0] : ! [v1] : ! [v2] : (v1 = v0 | ~ (powerset(v2) = v1) | ~ (powerset(v2) = v0)) & ! [v0] : ! [v1] : ! [v2] : ( ~ (the_carrier(v0) = v2) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v1, v2) | empty_carrier(v0) | ? [v3] : (powerset(v2) = v3 & ! [v4] : ( ~ point_neighbourhood(v4, v0, v1) | element(v4, v3)))) & ! [v0] : ! [v1] : ! [v2] : ( ~ (the_carrier(v0) = v2) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v1, v2) | empty_carrier(v0) | ? [v3] : point_neighbourhood(v3, v0, v1)) & ! [v0] : ! [v1] : ! [v2] : ( ~ (lim_points_of_net(v0, v1) = v2) | ~ net_str(v1, v0) | ~ directed_relstr(v1) | ~ transitive_relstr(v1) | ~ top_str(v0) | ~ topological_space(v0) | empty_carrier(v1) | empty_carrier(v0) | ? [v3] : ? [v4] : (the_carrier(v0) = v3 & powerset(v3) = v4 & element(v2, v4))) & ! [v0] : ! [v1] : ! [v2] : ( ~ (powerset(v1) = v2) | ~ subset(v0, v1) | element(v0, v2)) & ! [v0] : ! [v1] : ! [v2] : ( ~ (powerset(v1) = v2) | ~ element(v0, v2) | subset(v0, v1)) & ! [v0] : ! [v1] : ! [v2] : ( ~ (powerset(v0) = v1) | ~ element(v2, v1) | ~ finite(v0) | finite(v2)) & ! [v0] : ! [v1] : ! [v2] : ( ~ one_sorted_str(v0) | ~ is_eventually_in(v0, v1, v2) | ~ net_str(v1, v0) | ~ directed_relstr(v1) | ~ transitive_relstr(v1) | is_often_in(v0, v1, v2) | empty_carrier(v1) | empty_carrier(v0)) & ! [v0] : ! [v1] : (v1 = v0 | ~ empty(v1) | ~ empty(v0)) & ! [v0] : ! [v1] : ( ~ (the_carrier(v0) = v1) | ~ one_sorted_str(v0) | ~ empty(v1) | empty_carrier(v0)) & ! [v0] : ! [v1] : ( ~ (the_carrier(v0) = v1) | ~ one_sorted_str(v0) | empty_carrier(v0) | ? [v2] : ? [v3] : (powerset(v1) = v2 & element(v3, v2) & ~ empty(v3))) & ! [v0] : ! [v1] : ( ~ (the_carrier(v0) = v1) | ~ top_str(v0) | ~ topological_space(v0) | empty_carrier(v0) | ? [v2] : (powerset(v1) = v2 & ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (lim_points_of_net(v0, v3) = v4) | ~ point_neighbourhood(v6, v0, v5) | ~ net_str(v3, v0) | ~ directed_relstr(v3) | ~ transitive_relstr(v3) | ~ element(v5, v1) | ~ element(v4, v2) | ~ in(v5, v4) | is_eventually_in(v0, v3, v6) | empty_carrier(v3)) & ! [v3] : ! [v4] : ! [v5] : (v5 = v4 | ~ (lim_points_of_net(v0, v3) = v4) | ~ net_str(v3, v0) | ~ directed_relstr(v3) | ~ transitive_relstr(v3) | ~ element(v5, v2) | empty_carrier(v3) | ? [v6] : ? [v7] : (element(v6, v1) & ( ~ in(v6, v5) | (point_neighbourhood(v7, v0, v6) & ~ is_eventually_in(v0, v3, v7))) & (in(v6, v5) | ! [v8] : ( ~ point_neighbourhood(v8, v0, v6) | is_eventually_in(v0, v3, v8))))) & ! [v3] : ! [v4] : ! [v5] : ( ~ (lim_points_of_net(v0, v3) = v4) | ~ net_str(v3, v0) | ~ directed_relstr(v3) | ~ transitive_relstr(v3) | ~ element(v5, v1) | ~ element(v4, v2) | empty_carrier(v3) | in(v5, v4) | ? [v6] : (point_neighbourhood(v6, v0, v5) & ~ is_eventually_in(v0, v3, v6))))) & ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | ~ empty(v1)) & ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | diff_closed(v1)) & ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | cup_closed(v1)) & ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | preboolean(v1)) & ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | empty(v0) | ? [v2] : (element(v2, v1) & finite(v2) & ~ empty(v2))) & ! [v0] : ! [v1] : ( ~ one_sorted_str(v0) | ~ net_str(v1, v0) | rel_str(v1)) & ! [v0] : ! [v1] : ( ~ element(v0, v1) | empty(v1) | in(v0, v1)) & ! [v0] : ! [v1] : ( ~ empty(v1) | ~ in(v0, v1)) & ! [v0] : ! [v1] : ( ~ in(v1, v0) | ~ in(v0, v1)) & ! [v0] : ! [v1] : ( ~ in(v0, v1) | element(v0, v1)) & ! [v0] : (v0 = empty_set | ~ empty(v0)) & ! [v0] : ( ~ one_sorted_str(v0) | ? [v1] : net_str(v1, v0)) & ! [v0] : ( ~ rel_str(v0) | one_sorted_str(v0)) & ! [v0] : ( ~ top_str(v0) | one_sorted_str(v0)) & ! [v0] : ( ~ diff_closed(v0) | ~ cup_closed(v0) | preboolean(v0)) & ! [v0] : ( ~ preboolean(v0) | diff_closed(v0)) & ! [v0] : ( ~ preboolean(v0) | cup_closed(v0)) & ! [v0] : ( ~ empty(v0) | function(v0)) & ! [v0] : ( ~ empty(v0) | finite(v0)) & ? [v0] : ? [v1] : element(v1, v0) & ? [v0] : subset(v0, v0) % 5.30/1.94 | % 5.30/1.94 | Applying alpha-rule on (1) yields: % 5.30/1.94 | (2) the_carrier(all_0_11_11) = all_0_10_10 % 5.30/1.94 | (3) ! [v0] : ( ~ diff_closed(v0) | ~ cup_closed(v0) | preboolean(v0)) % 5.30/1.94 | (4) ~ empty_carrier(all_0_11_11) % 5.30/1.94 | (5) ! [v0] : ! [v1] : ! [v2] : ( ~ (the_carrier(v0) = v2) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v1, v2) | empty_carrier(v0) | ? [v3] : point_neighbourhood(v3, v0, v1)) % 5.30/1.94 | (6) ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | preboolean(v1)) % 5.30/1.94 | (7) ! [v0] : ! [v1] : ( ~ one_sorted_str(v0) | ~ net_str(v1, v0) | rel_str(v1)) % 5.30/1.95 | (8) ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | cup_closed(v1)) % 5.30/1.95 | (9) ~ empty_carrier(all_0_6_6) % 5.30/1.95 | (10) one_sorted_str(all_0_2_2) % 5.30/1.95 | (11) ! [v0] : ! [v1] : ! [v2] : (v1 = v0 | ~ (the_carrier(v2) = v1) | ~ (the_carrier(v2) = v0)) % 5.30/1.95 | (12) ! [v0] : ( ~ preboolean(v0) | cup_closed(v0)) % 5.30/1.95 | (13) ! [v0] : ! [v1] : (v1 = v0 | ~ empty(v1) | ~ empty(v0)) % 5.30/1.95 | (14) ! [v0] : ! [v1] : ( ~ in(v0, v1) | element(v0, v1)) % 5.30/1.95 | (15) ! [v0] : ! [v1] : ! [v2] : (v1 = v0 | ~ (powerset(v2) = v1) | ~ (powerset(v2) = v0)) % 5.30/1.95 | (16) finite(all_0_3_3) % 5.30/1.95 | (17) ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | diff_closed(v1)) % 5.30/1.95 | (18) empty(empty_set) % 5.30/1.95 | (19) ! [v0] : ! [v1] : ( ~ (the_carrier(v0) = v1) | ~ one_sorted_str(v0) | empty_carrier(v0) | ? [v2] : ? [v3] : (powerset(v1) = v2 & element(v3, v2) & ~ empty(v3))) % 5.30/1.95 | (20) ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | ~ empty(v1)) % 5.30/1.95 | (21) ! [v0] : ! [v1] : ( ~ (the_carrier(v0) = v1) | ~ top_str(v0) | ~ topological_space(v0) | empty_carrier(v0) | ? [v2] : (powerset(v1) = v2 & ! [v3] : ! [v4] : ! [v5] : ! [v6] : ( ~ (lim_points_of_net(v0, v3) = v4) | ~ point_neighbourhood(v6, v0, v5) | ~ net_str(v3, v0) | ~ directed_relstr(v3) | ~ transitive_relstr(v3) | ~ element(v5, v1) | ~ element(v4, v2) | ~ in(v5, v4) | is_eventually_in(v0, v3, v6) | empty_carrier(v3)) & ! [v3] : ! [v4] : ! [v5] : (v5 = v4 | ~ (lim_points_of_net(v0, v3) = v4) | ~ net_str(v3, v0) | ~ directed_relstr(v3) | ~ transitive_relstr(v3) | ~ element(v5, v2) | empty_carrier(v3) | ? [v6] : ? [v7] : (element(v6, v1) & ( ~ in(v6, v5) | (point_neighbourhood(v7, v0, v6) & ~ is_eventually_in(v0, v3, v7))) & (in(v6, v5) | ! [v8] : ( ~ point_neighbourhood(v8, v0, v6) | is_eventually_in(v0, v3, v8))))) & ! [v3] : ! [v4] : ! [v5] : ( ~ (lim_points_of_net(v0, v3) = v4) | ~ net_str(v3, v0) | ~ directed_relstr(v3) | ~ transitive_relstr(v3) | ~ element(v5, v1) | ~ element(v4, v2) | empty_carrier(v3) | in(v5, v4) | ? [v6] : (point_neighbourhood(v6, v0, v5) & ~ is_eventually_in(v0, v3, v6))))) % 5.30/1.95 | (22) transitive_relstr(all_0_9_9) % 5.30/1.95 | (23) top_str(all_0_11_11) % 5.30/1.95 | (24) in(all_0_7_7, all_0_8_8) % 5.30/1.95 | (25) ! [v0] : ! [v1] : ! [v2] : ( ~ one_sorted_str(v0) | ~ is_eventually_in(v0, v1, v2) | ~ net_str(v1, v0) | ~ directed_relstr(v1) | ~ transitive_relstr(v1) | is_often_in(v0, v1, v2) | empty_carrier(v1) | empty_carrier(v0)) % 5.30/1.95 | (26) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (powerset(v2) = v3) | ~ element(v1, v3) | ~ in(v0, v1) | element(v0, v2)) % 5.30/1.95 | (27) ! [v0] : ! [v1] : ! [v2] : ( ~ (the_carrier(v0) = v2) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v1, v2) | empty_carrier(v0) | ? [v3] : (powerset(v2) = v3 & ! [v4] : ( ~ point_neighbourhood(v4, v0, v1) | element(v4, v3)))) % 5.30/1.95 | (28) top_str(all_0_1_1) % 5.30/1.95 | (29) ~ is_a_cluster_point_of_netstr(all_0_11_11, all_0_9_9, all_0_7_7) % 5.30/1.95 | (30) ! [v0] : ! [v1] : ( ~ in(v1, v0) | ~ in(v0, v1)) % 5.30/1.95 | (31) ? [v0] : ? [v1] : element(v1, v0) % 5.30/1.95 | (32) directed_relstr(all_0_9_9) % 5.30/1.95 | (33) ! [v0] : ( ~ preboolean(v0) | diff_closed(v0)) % 5.30/1.95 | (34) ! [v0] : (v0 = empty_set | ~ empty(v0)) % 5.30/1.95 | (35) ! [v0] : ! [v1] : ( ~ empty(v1) | ~ in(v0, v1)) % 5.30/1.95 | (36) rel_str(all_0_0_0) % 5.30/1.96 | (37) ! [v0] : ! [v1] : ( ~ element(v0, v1) | empty(v1) | in(v0, v1)) % 5.30/1.96 | (38) ! [v0] : ! [v1] : ! [v2] : ! [v3] : (v1 = v0 | ~ (lim_points_of_net(v3, v2) = v1) | ~ (lim_points_of_net(v3, v2) = v0)) % 5.30/1.96 | (39) ! [v0] : ! [v1] : ! [v2] : ( ~ (lim_points_of_net(v0, v1) = v2) | ~ net_str(v1, v0) | ~ directed_relstr(v1) | ~ transitive_relstr(v1) | ~ top_str(v0) | ~ topological_space(v0) | empty_carrier(v1) | empty_carrier(v0) | ? [v3] : ? [v4] : (the_carrier(v0) = v3 & powerset(v3) = v4 & element(v2, v4))) % 5.30/1.96 | (40) empty(all_0_4_4) % 5.30/1.96 | (41) ! [v0] : ! [v1] : ! [v2] : ( ~ (powerset(v0) = v1) | ~ element(v2, v1) | ~ finite(v0) | finite(v2)) % 5.30/1.96 | (42) topological_space(all_0_11_11) % 5.30/1.96 | (43) ! [v0] : ( ~ top_str(v0) | one_sorted_str(v0)) % 5.30/1.96 | (44) ! [v0] : ( ~ rel_str(v0) | one_sorted_str(v0)) % 5.30/1.96 | (45) ~ empty(all_0_5_5) % 5.30/1.96 | (46) ! [v0] : ( ~ empty(v0) | function(v0)) % 5.30/1.96 | (47) one_sorted_str(all_0_6_6) % 5.30/1.96 | (48) ! [v0] : ! [v1] : ( ~ (powerset(v0) = v1) | empty(v0) | ? [v2] : (element(v2, v1) & finite(v2) & ~ empty(v2))) % 5.30/1.96 | (49) net_str(all_0_9_9, all_0_11_11) % 5.30/1.96 | (50) ~ empty_carrier(all_0_9_9) % 5.30/1.96 | (51) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (the_carrier(v0) = v1) | ~ net_str(v2, v0) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v3, v1) | is_a_cluster_point_of_netstr(v0, v2, v3) | empty_carrier(v2) | empty_carrier(v0) | ? [v4] : (point_neighbourhood(v4, v0, v3) & ~ is_often_in(v0, v2, v4))) % 5.30/1.96 | (52) ! [v0] : ! [v1] : ( ~ (the_carrier(v0) = v1) | ~ one_sorted_str(v0) | ~ empty(v1) | empty_carrier(v0)) % 5.30/1.96 | (53) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (powerset(v2) = v3) | ~ element(v1, v3) | ~ empty(v2) | ~ in(v0, v1)) % 5.30/1.96 | (54) ? [v0] : subset(v0, v0) % 5.30/1.96 | (55) ! [v0] : ( ~ one_sorted_str(v0) | ? [v1] : net_str(v1, v0)) % 5.30/1.96 | (56) ~ empty(all_0_3_3) % 5.30/1.96 | (57) ! [v0] : ! [v1] : ! [v2] : ( ~ (powerset(v1) = v2) | ~ element(v0, v2) | subset(v0, v1)) % 5.30/1.96 | (58) ! [v0] : ! [v1] : ! [v2] : ( ~ (powerset(v1) = v2) | ~ subset(v0, v1) | element(v0, v2)) % 5.30/1.96 | (59) lim_points_of_net(all_0_11_11, all_0_9_9) = all_0_8_8 % 5.30/1.96 | (60) element(all_0_7_7, all_0_10_10) % 5.30/1.96 | (61) ! [v0] : ( ~ empty(v0) | finite(v0)) % 5.30/1.96 | (62) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (the_carrier(v0) = v1) | ~ is_a_cluster_point_of_netstr(v0, v2, v3) | ~ point_neighbourhood(v4, v0, v3) | ~ net_str(v2, v0) | ~ top_str(v0) | ~ topological_space(v0) | ~ element(v3, v1) | is_often_in(v0, v2, v4) | empty_carrier(v2) | empty_carrier(v0)) % 5.30/1.96 | % 5.30/1.96 | Instantiating formula (43) with all_0_11_11 and discharging atoms top_str(all_0_11_11), yields: % 5.30/1.96 | (63) one_sorted_str(all_0_11_11) % 5.30/1.96 | % 5.30/1.96 | Instantiating formula (21) with all_0_10_10, all_0_11_11 and discharging atoms the_carrier(all_0_11_11) = all_0_10_10, top_str(all_0_11_11), topological_space(all_0_11_11), ~ empty_carrier(all_0_11_11), yields: % 5.30/1.96 | (64) ? [v0] : (powerset(all_0_10_10) = v0 & ! [v1] : ! [v2] : ! [v3] : ! [v4] : ( ~ (lim_points_of_net(all_0_11_11, v1) = v2) | ~ point_neighbourhood(v4, all_0_11_11, v3) | ~ net_str(v1, all_0_11_11) | ~ directed_relstr(v1) | ~ transitive_relstr(v1) | ~ element(v3, all_0_10_10) | ~ element(v2, v0) | ~ in(v3, v2) | is_eventually_in(all_0_11_11, v1, v4) | empty_carrier(v1)) & ! [v1] : ! [v2] : ! [v3] : (v3 = v2 | ~ (lim_points_of_net(all_0_11_11, v1) = v2) | ~ net_str(v1, all_0_11_11) | ~ directed_relstr(v1) | ~ transitive_relstr(v1) | ~ element(v3, v0) | empty_carrier(v1) | ? [v4] : ? [v5] : (element(v4, all_0_10_10) & ( ~ in(v4, v3) | (point_neighbourhood(v5, all_0_11_11, v4) & ~ is_eventually_in(all_0_11_11, v1, v5))) & (in(v4, v3) | ! [v6] : ( ~ point_neighbourhood(v6, all_0_11_11, v4) | is_eventually_in(all_0_11_11, v1, v6))))) & ! [v1] : ! [v2] : ! [v3] : ( ~ (lim_points_of_net(all_0_11_11, v1) = v2) | ~ net_str(v1, all_0_11_11) | ~ directed_relstr(v1) | ~ transitive_relstr(v1) | ~ element(v3, all_0_10_10) | ~ element(v2, v0) | empty_carrier(v1) | in(v3, v2) | ? [v4] : (point_neighbourhood(v4, all_0_11_11, v3) & ~ is_eventually_in(all_0_11_11, v1, v4)))) % 5.30/1.97 | % 5.30/1.97 | Instantiating formula (39) with all_0_8_8, all_0_9_9, all_0_11_11 and discharging atoms lim_points_of_net(all_0_11_11, all_0_9_9) = all_0_8_8, net_str(all_0_9_9, all_0_11_11), directed_relstr(all_0_9_9), transitive_relstr(all_0_9_9), top_str(all_0_11_11), topological_space(all_0_11_11), ~ empty_carrier(all_0_9_9), ~ empty_carrier(all_0_11_11), yields: % 5.30/1.97 | (65) ? [v0] : ? [v1] : (the_carrier(all_0_11_11) = v0 & powerset(v0) = v1 & element(all_0_8_8, v1)) % 5.30/1.97 | % 5.30/1.97 | Instantiating formula (51) with all_0_7_7, all_0_9_9, all_0_10_10, all_0_11_11 and discharging atoms the_carrier(all_0_11_11) = all_0_10_10, net_str(all_0_9_9, all_0_11_11), top_str(all_0_11_11), topological_space(all_0_11_11), element(all_0_7_7, all_0_10_10), ~ is_a_cluster_point_of_netstr(all_0_11_11, all_0_9_9, all_0_7_7), ~ empty_carrier(all_0_9_9), ~ empty_carrier(all_0_11_11), yields: % 5.30/1.97 | (66) ? [v0] : (point_neighbourhood(v0, all_0_11_11, all_0_7_7) & ~ is_often_in(all_0_11_11, all_0_9_9, v0)) % 5.30/1.97 | % 5.30/1.97 | Instantiating formula (27) with all_0_10_10, all_0_7_7, all_0_11_11 and discharging atoms the_carrier(all_0_11_11) = all_0_10_10, top_str(all_0_11_11), topological_space(all_0_11_11), element(all_0_7_7, all_0_10_10), ~ empty_carrier(all_0_11_11), yields: % 5.30/1.97 | (67) ? [v0] : (powerset(all_0_10_10) = v0 & ! [v1] : ( ~ point_neighbourhood(v1, all_0_11_11, all_0_7_7) | element(v1, v0))) % 5.30/1.97 | % 5.30/1.97 | Instantiating formula (5) with all_0_10_10, all_0_7_7, all_0_11_11 and discharging atoms the_carrier(all_0_11_11) = all_0_10_10, top_str(all_0_11_11), topological_space(all_0_11_11), element(all_0_7_7, all_0_10_10), ~ empty_carrier(all_0_11_11), yields: % 5.30/1.97 | (68) ? [v0] : point_neighbourhood(v0, all_0_11_11, all_0_7_7) % 5.30/1.97 | % 5.30/1.97 | Instantiating (68) with all_17_0_15 yields: % 5.30/1.97 | (69) point_neighbourhood(all_17_0_15, all_0_11_11, all_0_7_7) % 5.30/1.97 | % 5.30/1.97 | Instantiating (67) with all_19_0_16 yields: % 5.30/1.97 | (70) powerset(all_0_10_10) = all_19_0_16 & ! [v0] : ( ~ point_neighbourhood(v0, all_0_11_11, all_0_7_7) | element(v0, all_19_0_16)) % 5.30/1.97 | % 5.30/1.97 | Applying alpha-rule on (70) yields: % 5.30/1.97 | (71) powerset(all_0_10_10) = all_19_0_16 % 5.30/1.97 | (72) ! [v0] : ( ~ point_neighbourhood(v0, all_0_11_11, all_0_7_7) | element(v0, all_19_0_16)) % 5.30/1.97 | % 5.30/1.97 | Instantiating (66) with all_22_0_17 yields: % 5.30/1.97 | (73) point_neighbourhood(all_22_0_17, all_0_11_11, all_0_7_7) & ~ is_often_in(all_0_11_11, all_0_9_9, all_22_0_17) % 5.30/1.97 | % 5.30/1.97 | Applying alpha-rule on (73) yields: % 5.30/1.97 | (74) point_neighbourhood(all_22_0_17, all_0_11_11, all_0_7_7) % 5.30/1.97 | (75) ~ is_often_in(all_0_11_11, all_0_9_9, all_22_0_17) % 5.30/1.97 | % 5.30/1.97 | Instantiating (64) with all_24_0_18 yields: % 5.30/1.97 | (76) powerset(all_0_10_10) = all_24_0_18 & ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (lim_points_of_net(all_0_11_11, v0) = v1) | ~ point_neighbourhood(v3, all_0_11_11, v2) | ~ net_str(v0, all_0_11_11) | ~ directed_relstr(v0) | ~ transitive_relstr(v0) | ~ element(v2, all_0_10_10) | ~ element(v1, all_24_0_18) | ~ in(v2, v1) | is_eventually_in(all_0_11_11, v0, v3) | empty_carrier(v0)) & ! [v0] : ! [v1] : ! [v2] : (v2 = v1 | ~ (lim_points_of_net(all_0_11_11, v0) = v1) | ~ net_str(v0, all_0_11_11) | ~ directed_relstr(v0) | ~ transitive_relstr(v0) | ~ element(v2, all_24_0_18) | empty_carrier(v0) | ? [v3] : ? [v4] : (element(v3, all_0_10_10) & ( ~ in(v3, v2) | (point_neighbourhood(v4, all_0_11_11, v3) & ~ is_eventually_in(all_0_11_11, v0, v4))) & (in(v3, v2) | ! [v5] : ( ~ point_neighbourhood(v5, all_0_11_11, v3) | is_eventually_in(all_0_11_11, v0, v5))))) & ! [v0] : ! [v1] : ! [v2] : ( ~ (lim_points_of_net(all_0_11_11, v0) = v1) | ~ net_str(v0, all_0_11_11) | ~ directed_relstr(v0) | ~ transitive_relstr(v0) | ~ element(v2, all_0_10_10) | ~ element(v1, all_24_0_18) | empty_carrier(v0) | in(v2, v1) | ? [v3] : (point_neighbourhood(v3, all_0_11_11, v2) & ~ is_eventually_in(all_0_11_11, v0, v3))) % 5.30/1.98 | % 5.30/1.98 | Applying alpha-rule on (76) yields: % 5.30/1.98 | (77) powerset(all_0_10_10) = all_24_0_18 % 5.30/1.98 | (78) ! [v0] : ! [v1] : ! [v2] : ! [v3] : ( ~ (lim_points_of_net(all_0_11_11, v0) = v1) | ~ point_neighbourhood(v3, all_0_11_11, v2) | ~ net_str(v0, all_0_11_11) | ~ directed_relstr(v0) | ~ transitive_relstr(v0) | ~ element(v2, all_0_10_10) | ~ element(v1, all_24_0_18) | ~ in(v2, v1) | is_eventually_in(all_0_11_11, v0, v3) | empty_carrier(v0)) % 5.30/1.98 | (79) ! [v0] : ! [v1] : ! [v2] : (v2 = v1 | ~ (lim_points_of_net(all_0_11_11, v0) = v1) | ~ net_str(v0, all_0_11_11) | ~ directed_relstr(v0) | ~ transitive_relstr(v0) | ~ element(v2, all_24_0_18) | empty_carrier(v0) | ? [v3] : ? [v4] : (element(v3, all_0_10_10) & ( ~ in(v3, v2) | (point_neighbourhood(v4, all_0_11_11, v3) & ~ is_eventually_in(all_0_11_11, v0, v4))) & (in(v3, v2) | ! [v5] : ( ~ point_neighbourhood(v5, all_0_11_11, v3) | is_eventually_in(all_0_11_11, v0, v5))))) % 5.62/1.98 | (80) ! [v0] : ! [v1] : ! [v2] : ( ~ (lim_points_of_net(all_0_11_11, v0) = v1) | ~ net_str(v0, all_0_11_11) | ~ directed_relstr(v0) | ~ transitive_relstr(v0) | ~ element(v2, all_0_10_10) | ~ element(v1, all_24_0_18) | empty_carrier(v0) | in(v2, v1) | ? [v3] : (point_neighbourhood(v3, all_0_11_11, v2) & ~ is_eventually_in(all_0_11_11, v0, v3))) % 5.62/1.98 | % 5.62/1.98 | Instantiating (65) with all_27_0_19, all_27_1_20 yields: % 5.62/1.98 | (81) the_carrier(all_0_11_11) = all_27_1_20 & powerset(all_27_1_20) = all_27_0_19 & element(all_0_8_8, all_27_0_19) % 5.62/1.98 | % 5.62/1.98 | Applying alpha-rule on (81) yields: % 5.62/1.98 | (82) the_carrier(all_0_11_11) = all_27_1_20 % 5.62/1.98 | (83) powerset(all_27_1_20) = all_27_0_19 % 5.62/1.98 | (84) element(all_0_8_8, all_27_0_19) % 5.62/1.98 | % 5.62/1.98 | Instantiating formula (11) with all_0_11_11, all_27_1_20, all_0_10_10 and discharging atoms the_carrier(all_0_11_11) = all_27_1_20, the_carrier(all_0_11_11) = all_0_10_10, yields: % 5.62/1.98 | (85) all_27_1_20 = all_0_10_10 % 5.62/1.98 | % 5.62/1.98 | Instantiating formula (15) with all_0_10_10, all_19_0_16, all_24_0_18 and discharging atoms powerset(all_0_10_10) = all_24_0_18, powerset(all_0_10_10) = all_19_0_16, yields: % 5.62/1.98 | (86) all_24_0_18 = all_19_0_16 % 5.62/1.98 | % 5.62/1.98 | From (85) and (83) follows: % 5.62/1.98 | (87) powerset(all_0_10_10) = all_27_0_19 % 5.62/1.98 | % 5.62/1.98 | From (86) and (77) follows: % 5.62/1.98 | (71) powerset(all_0_10_10) = all_19_0_16 % 5.62/1.98 | % 5.62/1.98 | Instantiating formula (15) with all_0_10_10, all_27_0_19, all_19_0_16 and discharging atoms powerset(all_0_10_10) = all_27_0_19, powerset(all_0_10_10) = all_19_0_16, yields: % 5.62/1.98 | (89) all_27_0_19 = all_19_0_16 % 5.62/1.98 | % 5.62/1.98 | From (89) and (84) follows: % 5.62/1.98 | (90) element(all_0_8_8, all_19_0_16) % 5.62/1.98 | % 5.62/1.98 | Instantiating formula (78) with all_22_0_17, all_0_7_7, all_0_8_8, all_0_9_9 and discharging atoms lim_points_of_net(all_0_11_11, all_0_9_9) = all_0_8_8, point_neighbourhood(all_22_0_17, all_0_11_11, all_0_7_7), net_str(all_0_9_9, all_0_11_11), directed_relstr(all_0_9_9), transitive_relstr(all_0_9_9), element(all_0_7_7, all_0_10_10), in(all_0_7_7, all_0_8_8), ~ empty_carrier(all_0_9_9), yields: % 5.62/1.99 | (91) ~ element(all_0_8_8, all_24_0_18) | is_eventually_in(all_0_11_11, all_0_9_9, all_22_0_17) % 5.62/1.99 | % 5.62/1.99 | Instantiating formula (78) with all_17_0_15, all_0_7_7, all_0_8_8, all_0_9_9 and discharging atoms lim_points_of_net(all_0_11_11, all_0_9_9) = all_0_8_8, point_neighbourhood(all_17_0_15, all_0_11_11, all_0_7_7), net_str(all_0_9_9, all_0_11_11), directed_relstr(all_0_9_9), transitive_relstr(all_0_9_9), element(all_0_7_7, all_0_10_10), in(all_0_7_7, all_0_8_8), ~ empty_carrier(all_0_9_9), yields: % 5.62/1.99 | (92) ~ element(all_0_8_8, all_24_0_18) | is_eventually_in(all_0_11_11, all_0_9_9, all_17_0_15) % 5.62/1.99 | % 5.62/1.99 +-Applying beta-rule and splitting (92), into two cases. % 5.62/1.99 |-Branch one: % 5.62/1.99 | (93) ~ element(all_0_8_8, all_24_0_18) % 5.62/1.99 | % 5.62/1.99 | From (86) and (93) follows: % 5.62/1.99 | (94) ~ element(all_0_8_8, all_19_0_16) % 5.62/1.99 | % 5.62/1.99 | Using (90) and (94) yields: % 5.62/1.99 | (95) $false % 5.62/1.99 | % 5.62/1.99 |-The branch is then unsatisfiable % 5.62/1.99 |-Branch two: % 5.62/1.99 | (96) element(all_0_8_8, all_24_0_18) % 5.62/1.99 | (97) is_eventually_in(all_0_11_11, all_0_9_9, all_17_0_15) % 5.62/1.99 | % 5.62/1.99 | From (86) and (96) follows: % 5.62/1.99 | (90) element(all_0_8_8, all_19_0_16) % 5.62/1.99 | % 5.62/1.99 +-Applying beta-rule and splitting (91), into two cases. % 5.62/1.99 |-Branch one: % 5.62/1.99 | (93) ~ element(all_0_8_8, all_24_0_18) % 5.62/1.99 | % 5.62/1.99 | From (86) and (93) follows: % 5.62/1.99 | (94) ~ element(all_0_8_8, all_19_0_16) % 5.62/1.99 | % 5.62/1.99 | Using (90) and (94) yields: % 5.62/1.99 | (95) $false % 5.62/1.99 | % 5.62/1.99 |-The branch is then unsatisfiable % 5.62/1.99 |-Branch two: % 5.62/1.99 | (96) element(all_0_8_8, all_24_0_18) % 5.62/1.99 | (103) is_eventually_in(all_0_11_11, all_0_9_9, all_22_0_17) % 5.62/1.99 | % 5.62/1.99 | Instantiating formula (25) with all_22_0_17, all_0_9_9, all_0_11_11 and discharging atoms one_sorted_str(all_0_11_11), is_eventually_in(all_0_11_11, all_0_9_9, all_22_0_17), net_str(all_0_9_9, all_0_11_11), directed_relstr(all_0_9_9), transitive_relstr(all_0_9_9), ~ is_often_in(all_0_11_11, all_0_9_9, all_22_0_17), ~ empty_carrier(all_0_9_9), ~ empty_carrier(all_0_11_11), yields: % 5.62/1.99 | (95) $false % 5.62/1.99 | % 5.62/1.99 |-The branch is then unsatisfiable % 5.62/1.99 % SZS output end Proof for theBenchmark % 5.62/1.99 % 5.62/1.99 1402ms %------------------------------------------------------------------------------