TSTP Solution File: NUM535+2 by cvc5---1.0.5

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : cvc5---1.0.5
% Problem  : NUM535+2 : TPTP v8.1.2. Released v4.0.0.
% Transfm  : none
% Format   : tptp
% Command  : do_cvc5 %s %d

% 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 10:44:51 EDT 2023

% Result   : Theorem 0.20s 0.53s
% Output   : Proof 0.20s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem    : NUM535+2 : TPTP v8.1.2. Released v4.0.0.
% 0.00/0.13  % Command    : do_cvc5 %s %d
% 0.14/0.34  % Computer : n006.cluster.edu
% 0.14/0.34  % Model    : x86_64 x86_64
% 0.14/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.34  % Memory   : 8042.1875MB
% 0.14/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.14/0.34  % CPULimit   : 300
% 0.14/0.34  % WCLimit    : 300
% 0.14/0.34  % DateTime   : Fri Aug 25 13:31:07 EDT 2023
% 0.14/0.34  % CPUTime    : 
% 0.20/0.47  %----Proving TF0_NAR, FOF, or CNF
% 0.20/0.53  ------- convert to smt2 : /export/starexec/sandbox/tmp/tmp.hqWbHf6bvl/cvc5---1.0.5_1257.p...
% 0.20/0.53  ------- get file name : TPTP file name is NUM535+2
% 0.20/0.53  ------- cvc5-fof : /export/starexec/sandbox/solver/bin/cvc5---1.0.5_1257.smt2...
% 0.20/0.53  --- Run --decision=internal --simplification=none --no-inst-no-entail --no-cbqi --full-saturate-quant at 10...
% 0.20/0.53  % SZS status Theorem for NUM535+2
% 0.20/0.53  % SZS output start Proof for NUM535+2
% 0.20/0.53  (
% 0.20/0.53  (let ((_let_1 (tptp.sdtmndt0 tptp.xS tptp.xx))) (let ((_let_2 (tptp.sdtpldt0 _let_1 tptp.xx))) (let ((_let_3 (tptp.aSubsetOf0 _let_2 tptp.xS))) (let ((_let_4 (tptp.aSet0 _let_2))) (let ((_let_5 (tptp.aSet0 _let_1))) (let ((_let_6 (tptp.aSubsetOf0 tptp.xS _let_2))) (let ((_let_7 (not (and (=> (and _let_5 (forall ((W0 $$unsorted)) (= (tptp.aElementOf0 W0 (tptp.sdtmndt0 tptp.xS tptp.xx)) (and (tptp.aElement0 W0) (tptp.aElementOf0 W0 tptp.xS) (not (= W0 tptp.xx)))))) (=> (and _let_4 (forall ((W0 $$unsorted)) (let ((_let_1 (tptp.sdtmndt0 tptp.xS tptp.xx))) (= (tptp.aElementOf0 W0 (tptp.sdtpldt0 _let_1 tptp.xx)) (and (tptp.aElement0 W0) (or (tptp.aElementOf0 W0 _let_1) (= W0 tptp.xx))))))) (or (forall ((W0 $$unsorted)) (=> (tptp.aElementOf0 W0 tptp.xS) (tptp.aElementOf0 W0 (tptp.sdtpldt0 (tptp.sdtmndt0 tptp.xS tptp.xx) tptp.xx)))) _let_6))) (=> (and _let_5 (forall ((W0 $$unsorted)) (= (tptp.aElementOf0 W0 (tptp.sdtmndt0 tptp.xS tptp.xx)) (and (tptp.aElement0 W0) (tptp.aElementOf0 W0 tptp.xS) (not (= W0 tptp.xx)))))) (=> (and _let_4 (forall ((W0 $$unsorted)) (let ((_let_1 (tptp.sdtmndt0 tptp.xS tptp.xx))) (= (tptp.aElementOf0 W0 (tptp.sdtpldt0 _let_1 tptp.xx)) (and (tptp.aElement0 W0) (or (tptp.aElementOf0 W0 _let_1) (= W0 tptp.xx))))))) (or (forall ((W0 $$unsorted)) (=> (tptp.aElementOf0 W0 (tptp.sdtpldt0 (tptp.sdtmndt0 tptp.xS tptp.xx) tptp.xx)) (tptp.aElementOf0 W0 tptp.xS))) _let_3))))))) (let ((_let_8 (tptp.aElementOf0 tptp.xx tptp.xS))) (let ((_let_9 (tptp.aSet0 tptp.xS))) (let ((_let_10 (forall ((W0 $$unsorted)) (=> (tptp.aSet0 W0) (forall ((W1 $$unsorted)) (=> (tptp.aElementOf0 W1 W0) (tptp.aElement0 W1))))))) (let ((_let_11 (tptp.aElementOf0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3 tptp.xS))) (let ((_let_12 (tptp.aElement0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3))) (let ((_let_13 (= tptp.xx SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3))) (let ((_let_14 (not _let_13))) (let ((_let_15 (and _let_12 _let_11 _let_14))) (let ((_let_16 (tptp.aElementOf0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3 _let_2))) (let ((_let_17 (not _let_11))) (let ((_let_18 (or _let_17 _let_16))) (let ((_let_19 (forall ((W0 $$unsorted)) (or (not (tptp.aElementOf0 W0 tptp.xS)) (tptp.aElementOf0 W0 (tptp.sdtpldt0 (tptp.sdtmndt0 tptp.xS tptp.xx) tptp.xx)))))) (let ((_let_20 (not _let_18))) (let ((_let_21 (or _let_19 _let_6))) (let ((_let_22 (not _let_19))) (let ((_let_23 (forall ((W0 $$unsorted)) (let ((_let_1 (tptp.sdtmndt0 tptp.xS tptp.xx))) (= (tptp.aElementOf0 W0 (tptp.sdtpldt0 _let_1 tptp.xx)) (and (tptp.aElement0 W0) (or (tptp.aElementOf0 W0 _let_1) (= tptp.xx W0)))))))) (let ((_let_24 (and _let_4 _let_23))) (let ((_let_25 (=> _let_24 _let_21))) (let ((_let_26 (forall ((W0 $$unsorted)) (= (tptp.aElementOf0 W0 (tptp.sdtmndt0 tptp.xS tptp.xx)) (and (tptp.aElement0 W0) (tptp.aElementOf0 W0 tptp.xS) (not (= tptp.xx W0))))))) (let ((_let_27 (and _let_5 _let_26))) (let ((_let_28 (=> _let_27 _let_25))) (let ((_let_29 (forall ((W0 $$unsorted)) (or (not (tptp.aElementOf0 W0 (tptp.sdtpldt0 (tptp.sdtmndt0 tptp.xS tptp.xx) tptp.xx))) (tptp.aElementOf0 W0 tptp.xS))))) (let ((_let_30 (or _let_29 _let_3))) (let ((_let_31 (forall ((W0 $$unsorted)) (let ((_let_1 (tptp.sdtmndt0 tptp.xS tptp.xx))) (= (tptp.aElementOf0 W0 (tptp.sdtpldt0 _let_1 tptp.xx)) (and (tptp.aElement0 W0) (or (tptp.aElementOf0 W0 _let_1) (= tptp.xx W0)))))))) (let ((_let_32 (and _let_4 _let_31))) (let ((_let_33 (=> _let_32 _let_30))) (let ((_let_34 (forall ((W0 $$unsorted)) (= (tptp.aElementOf0 W0 (tptp.sdtmndt0 tptp.xS tptp.xx)) (and (tptp.aElement0 W0) (tptp.aElementOf0 W0 tptp.xS) (not (= tptp.xx W0))))))) (let ((_let_35 (and _let_5 _let_34))) (let ((_let_36 (=> _let_35 _let_33))) (let ((_let_37 (= tptp.xx SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_2))) (let ((_let_38 (not _let_37))) (let ((_let_39 (tptp.aElementOf0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_2 tptp.xS))) (let ((_let_40 (tptp.aElement0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_2))) (let ((_let_41 (and _let_40 _let_39 _let_38))) (let ((_let_42 (tptp.aElementOf0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_2 _let_1))) (let ((_let_43 (= _let_42 _let_41))) (let ((_let_44 (tptp.aElementOf0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_2 _let_2))) (let ((_let_45 (not _let_44))) (let ((_let_46 (or _let_45 _let_39))) (let ((_let_47 (or _let_42 _let_37))) (let ((_let_48 (and _let_40 _let_47))) (let ((_let_49 (= _let_44 _let_48))) (let ((_let_50 (_let_36))) (let ((_let_51 (_let_33))) (let ((_let_52 (_let_26))) (let ((_let_53 ((tptp.aElementOf0 W0 tptp.xS)))) (let ((_let_54 (ASSUME :args _let_52))) (let ((_let_55 (or))) (let ((_let_56 (not _let_29))) (let ((_let_57 (_let_56))) (let ((_let_58 (_let_23))) (let ((_let_59 ((tptp.aElementOf0 W0 _let_2)))) (let ((_let_60 (ASSUME :args _let_58))) (let ((_let_61 (ASSUME :args (_let_8)))) (let ((_let_62 (not _let_39))) (let ((_let_63 (ASSUME :args (_let_62)))) (let ((_let_64 (ASSUME :args (_let_37)))) (let ((_let_65 (MACRO_RESOLUTION_TRUST (NOT_AND (EQ_RESOLVE (ASSUME :args (_let_7)) (MACRO_SR_EQ_INTRO :args (_let_7 SB_DEFAULT SBA_FIXPOINT)))) (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (NOT_AND (MACRO_SR_PRED_TRANSFORM (SCOPE (AND_INTRO _let_63 _let_64 _let_61) :args (_let_8 _let_62 _let_37)) (SCOPE (MACRO_SR_PRED_ELIM (TRANS (SYMM (TRUE_INTRO _let_61)) (CONG (SYMM (SYMM _let_64)) (REFL :args (tptp.xS)) :args (APPLY_UF tptp.aElementOf0)) (FALSE_INTRO _let_63))) :args (_let_62 _let_37 _let_8)) :args ((not (and _let_8 _let_62 _let_37)) SB_LITERAL))) (CONG (REFL :args ((not _let_8))) (MACRO_SR_PRED_INTRO :args ((= (not _let_62) _let_39))) (REFL :args (_let_38)) :args _let_55)) _let_61 (REORDERING (CNF_OR_POS :args (_let_47)) :args ((or _let_42 _let_37 (not _let_47)))) (REORDERING (CNF_EQUIV_POS1 :args (_let_43)) :args ((or _let_41 (not _let_42) (not _let_43)))) (REORDERING (CNF_AND_POS :args (_let_48 1)) :args ((or _let_47 (not _let_48)))) (REORDERING (CNF_AND_POS :args (_let_41 1)) :args ((or _let_39 (not _let_41)))) (REORDERING (CNF_EQUIV_POS1 :args (_let_49)) :args ((or _let_45 _let_48 (not _let_49)))) (CNF_OR_NEG :args (_let_46 1)) (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_46 0)) (CONG (REFL :args (_let_46)) (MACRO_SR_PRED_INTRO :args ((= (not _let_45) _let_44))) :args _let_55)) :args ((or _let_44 _let_46))) (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_60 :args (SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_2 QUANTIFIERS_INST_E_MATCHING_SIMPLE _let_59)) :args _let_58)) (EQ_RESOLVE (IMPLIES_ELIM (SCOPE (SKOLEMIZE (ASSUME :args _let_57)) :args _let_57)) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_56) _let_29))) (REFL :args ((not _let_46))) :args _let_55)) (EQUIV_ELIM2 (ALPHA_EQUIV :args (_let_23 (= W0 W0)))) (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_54 :args (SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_2 QUANTIFIERS_INST_E_MATCHING_SIMPLE _let_53)) :args _let_52)) (CNF_OR_NEG :args (_let_30 0)) (REORDERING (CNF_AND_POS :args (_let_32 1)) :args ((or _let_31 (not _let_32)))) (EQUIV_ELIM2 (ALPHA_EQUIV :args (_let_26 (= W0 W0)))) (CNF_IMPLIES_NEG2 :args _let_51) (REORDERING (CNF_IMPLIES_NEG1 :args _let_51) :args ((or _let_32 _let_33))) (REORDERING (CNF_AND_POS :args (_let_35 1)) :args ((or _let_34 (not _let_35)))) (CNF_IMPLIES_NEG2 :args _let_50) (REORDERING (CNF_IMPLIES_NEG1 :args _let_50) :args ((or _let_35 _let_36))) :args (_let_36 false _let_8 false _let_37 true _let_42 false _let_47 true _let_41 false _let_48 true _let_39 false _let_44 false _let_49 true _let_46 false _let_23 false _let_43 true _let_29 false _let_31 false _let_26 true _let_30 false _let_32 false _let_34 true _let_33 false _let_35)) :args ((not _let_28) false _let_36)))) (let ((_let_66 (_let_28))) (let ((_let_67 (MACRO_RESOLUTION_TRUST (CNF_IMPLIES_NEG2 :args _let_66) _let_65 :args ((not _let_25) true _let_28)))) (let ((_let_68 (_let_25))) (let ((_let_69 (_let_22))) (let ((_let_70 (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (IMPLIES_ELIM (SCOPE (SKOLEMIZE (ASSUME :args _let_69)) :args _let_69)) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_22) _let_19))) (REFL :args (_let_20)) :args _let_55)) (MACRO_RESOLUTION_TRUST (CNF_OR_NEG :args (_let_21 0)) (MACRO_RESOLUTION_TRUST (CNF_IMPLIES_NEG2 :args _let_68) _let_67 :args ((not _let_21) true _let_25)) :args (_let_22 true _let_21)) :args (_let_20 true _let_19)))) (let ((_let_71 (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_18 0)) (CONG (REFL :args (_let_18)) (MACRO_SR_PRED_INTRO :args ((= (not _let_17) _let_11))) :args _let_55)) :args ((or _let_11 _let_18))) _let_70 :args (_let_11 true _let_18)))) (let ((_let_72 (not _let_9))) (let ((_let_73 (or _let_72 _let_17 _let_12))) (let ((_let_74 (forall ((W0 $$unsorted) (BOUND_VARIABLE_854 $$unsorted)) (or (not (tptp.aSet0 W0)) (not (tptp.aElementOf0 BOUND_VARIABLE_854 W0)) (tptp.aElement0 BOUND_VARIABLE_854))))) (let ((_let_75 (EQ_RESOLVE (ASSUME :args (_let_10)) (MACRO_SR_EQ_INTRO :args (_let_10 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_76 (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_POS :args (_let_73)) :args ((or _let_72 _let_17 _let_12 (not _let_73)))) (ASSUME :args (_let_9)) _let_71 (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_75 :args (tptp.xS SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3 QUANTIFIERS_INST_E_MATCHING_SIMPLE ((not (= (tptp.aElementOf0 BOUND_VARIABLE_854 W0) false))))) :args (_let_74))) _let_75 :args (_let_73 false _let_74)) :args (_let_12 false _let_9 false _let_11 false _let_73)))) (let ((_let_77 (tptp.aElementOf0 SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3 _let_1))) (let ((_let_78 (or _let_77 _let_13))) (let ((_let_79 (and _let_12 _let_78))) (let ((_let_80 (= _let_16 _let_79))) (let ((_let_81 (not _let_79))) (let ((_let_82 (MACRO_RESOLUTION_TRUST (CNF_AND_NEG :args (_let_79)) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_EQUIV_POS2 :args (_let_80)) :args ((or _let_16 _let_81 (not _let_80)))) (MACRO_RESOLUTION_TRUST (CNF_OR_NEG :args (_let_18 1)) _let_70 :args ((not _let_16) true _let_18)) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_60 :args (SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3 QUANTIFIERS_INST_E_MATCHING_SIMPLE _let_59)) :args _let_58)) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_AND_POS :args (_let_24 1)) :args ((or _let_23 (not _let_24)))) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_IMPLIES_NEG1 :args _let_68) :args ((or _let_24 _let_25))) _let_67 :args (_let_24 true _let_25)) :args (_let_23 false _let_24)) :args (_let_80 false _let_23)) :args (_let_81 true _let_16 false _let_80)) _let_76 :args ((not _let_78) true _let_79 false _let_12)))) (let ((_let_83 (= _let_77 _let_15))) (let ((_let_84 (not _let_15))) (let ((_let_85 (not _let_12))) (let ((_let_86 (_let_15))) (SCOPE (SCOPE (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_AND_NEG :args _let_86) (CONG (REFL :args _let_86) (REFL :args (_let_85)) (REFL :args (_let_17)) (MACRO_SR_PRED_INTRO :args ((= (not _let_14) _let_13))) :args _let_55)) :args ((or _let_17 _let_13 _let_15 _let_85))) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_EQUIV_POS2 :args (_let_83)) :args ((or _let_77 _let_84 (not _let_83)))) (MACRO_RESOLUTION_TRUST (CNF_OR_NEG :args (_let_78 0)) _let_82 :args ((not _let_77) true _let_78)) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_54 :args (SKOLEM_FUN_QUANTIFIERS_SKOLEMIZE_3 QUANTIFIERS_INST_E_MATCHING_SIMPLE _let_53)) :args _let_52)) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_AND_POS :args (_let_27 1)) :args ((or _let_26 (not _let_27)))) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_IMPLIES_NEG1 :args _let_66) :args ((or _let_27 _let_28))) _let_65 :args (_let_27 true _let_28)) :args (_let_26 false _let_27)) :args (_let_83 false _let_26)) :args (_let_84 true _let_77 false _let_83)) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_NEG :args (_let_78 1)) :args ((or _let_14 _let_78))) _let_82 :args (_let_14 true _let_78)) _let_76 _let_71 :args (false true _let_15 true _let_13 false _let_12 false _let_11)) :args ((forall ((W0 $$unsorted)) (=> (tptp.aSet0 W0) true)) (forall ((W0 $$unsorted)) (=> (tptp.aElement0 W0) true)) _let_10 (forall ((W0 $$unsorted)) (=> (tptp.aSet0 W0) (=> (tptp.isFinite0 W0) true))) (forall ((W0 $$unsorted)) (= (= W0 tptp.slcrc0) (and (tptp.aSet0 W0) (not (exists ((W1 $$unsorted)) (tptp.aElementOf0 W1 W0)))))) (tptp.isFinite0 tptp.slcrc0) (forall ((W0 $$unsorted)) (=> (tptp.aSet0 W0) (=> (tptp.isCountable0 W0) true))) (forall ((W0 $$unsorted)) (=> (and (tptp.aSet0 W0) (tptp.isCountable0 W0)) (not (tptp.isFinite0 W0)))) (forall ((W0 $$unsorted)) (=> (and (tptp.aSet0 W0) (tptp.isCountable0 W0)) (not (= W0 tptp.slcrc0)))) (forall ((W0 $$unsorted)) (=> (tptp.aSet0 W0) (forall ((W1 $$unsorted)) (= (tptp.aSubsetOf0 W1 W0) (and (tptp.aSet0 W1) (forall ((W2 $$unsorted)) (=> (tptp.aElementOf0 W2 W1) (tptp.aElementOf0 W2 W0)))))))) (forall ((W0 $$unsorted)) (=> (and (tptp.aSet0 W0) (tptp.isFinite0 W0)) (forall ((W1 $$unsorted)) (=> (tptp.aSubsetOf0 W1 W0) (tptp.isFinite0 W1))))) (forall ((W0 $$unsorted)) (=> (tptp.aSet0 W0) (tptp.aSubsetOf0 W0 W0))) (forall ((W0 $$unsorted) (W1 $$unsorted)) (=> (and (tptp.aSet0 W0) (tptp.aSet0 W1)) (=> (and (tptp.aSubsetOf0 W0 W1) (tptp.aSubsetOf0 W1 W0)) (= W0 W1)))) (forall ((W0 $$unsorted) (W1 $$unsorted) (W2 $$unsorted)) (=> (and (tptp.aSet0 W0) (tptp.aSet0 W1) (tptp.aSet0 W2)) (=> (and (tptp.aSubsetOf0 W0 W1) (tptp.aSubsetOf0 W1 W2)) (tptp.aSubsetOf0 W0 W2)))) (forall ((W0 $$unsorted) (W1 $$unsorted)) (=> (and (tptp.aSet0 W0) (tptp.aElement0 W1)) (forall ((W2 $$unsorted)) (= (= W2 (tptp.sdtpldt0 W0 W1)) (and (tptp.aSet0 W2) (forall ((W3 $$unsorted)) (= (tptp.aElementOf0 W3 W2) (and (tptp.aElement0 W3) (or (tptp.aElementOf0 W3 W0) (= W3 W1)))))))))) (forall ((W0 $$unsorted) (W1 $$unsorted)) (=> (and (tptp.aSet0 W0) (tptp.aElement0 W1)) (forall ((W2 $$unsorted)) (= (= W2 (tptp.sdtmndt0 W0 W1)) (and (tptp.aSet0 W2) (forall ((W3 $$unsorted)) (= (tptp.aElementOf0 W3 W2) (and (tptp.aElement0 W3) (tptp.aElementOf0 W3 W0) (not (= W3 W1)))))))))) _let_9 _let_8 _let_7 true)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
% 0.20/0.53  )
% 0.20/0.53  % SZS output end Proof for NUM535+2
% 0.20/0.53  % cvc5---1.0.5 exiting
% 0.20/0.53  % cvc5---1.0.5 exiting
%------------------------------------------------------------------------------