TSTP Solution File: SYN518+1 by cvc5-SAT---1.0.5

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : cvc5-SAT---1.0.5
% Problem  : SYN518+1 : TPTP v8.1.2. Released v2.1.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : do_cvc5 %s %d

% Computer : n019.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 Nov 24 04:32:52 EST 2023

% Result   : CounterSatisfiable 163.66s 163.92s
% Output   : FiniteModel 163.66s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.07/0.12  % Problem    : SYN518+1 : TPTP v8.1.2. Released v2.1.0.
% 0.07/0.13  % Command    : do_cvc5 %s %d
% 0.13/0.35  % Computer : n019.cluster.edu
% 0.13/0.35  % Model    : x86_64 x86_64
% 0.13/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.35  % Memory   : 8042.1875MB
% 0.13/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.35  % CPULimit   : 300
% 0.13/0.35  % WCLimit    : 300
% 0.13/0.35  % DateTime   : Wed Nov 22 08:43:45 EST 2023
% 0.13/0.35  % CPUTime    : 
% 0.20/0.51  %----Disproving FOF, CNF
% 163.66/163.92  ------- convert to smt2 : /export/starexec/sandbox/tmp/tmp.Id4crbJNmc/cvc5---1.0.5_27832.p...
% 163.66/163.92  ------- get file name : TPTP file name is SYN518+1
% 163.66/163.92  ------- cvc5-fnt : /export/starexec/sandbox/solver/bin/cvc5---1.0.5_27832.smt2...
% 163.66/163.92  --- Run --finite-model-find at 30...
% 163.66/163.92  --- Run --finite-model-find --macros-quant --macros-quant-mode=all --sort-inference...
% 163.66/163.92  % SZS status CounterSatisfiable for SYN518+1
% 163.66/163.92  % SZS output start FiniteModel for SYN518+1
% 163.66/163.92  (
% 163.66/163.92  ; cardinality of $$unsorted is 3
% 163.66/163.92  ; rep: (as @$$unsorted_0 $$unsorted)
% 163.66/163.92  ; rep: (as @$$unsorted_1 $$unsorted)
% 163.66/163.92  ; rep: (as @$$unsorted_2 $$unsorted)
% 163.66/163.92  (define-fun tptp.ndr1_0 () Bool true)
% 163.66/163.92  (define-fun tptp.ndr1_1 (($x1 $$unsorted)) Bool true)
% 163.66/163.92  (define-fun tptp.a999 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.c2_2 ((BOUND_VARIABLE_123039 $$unsorted) (BOUND_VARIABLE_123040 $$unsorted)) Bool false)
% 163.66/163.92  (define-fun tptp.c3_2 ((BOUND_VARIABLE_123043 $$unsorted) (BOUND_VARIABLE_123044 $$unsorted)) Bool false)
% 163.66/163.92  (define-fun tptp.c1_2 ((BOUND_VARIABLE_123047 $$unsorted) (BOUND_VARIABLE_123048 $$unsorted)) Bool false)
% 163.66/163.92  (define-fun tptp.c1_1 (($x1 $$unsorted)) Bool (= (as @$$unsorted_0 $$unsorted) $x1))
% 163.66/163.92  (define-fun tptp.c5_2 ((BOUND_VARIABLE_123051 $$unsorted) (BOUND_VARIABLE_123052 $$unsorted)) Bool false)
% 163.66/163.92  (define-fun tptp.c3_0 () Bool false)
% 163.66/163.92  (define-fun tptp.c4_2 ((BOUND_VARIABLE_123055 $$unsorted) (BOUND_VARIABLE_123056 $$unsorted)) Bool false)
% 163.66/163.92  (define-fun tptp.c3_1 (($x1 $$unsorted)) Bool (= (as @$$unsorted_2 $$unsorted) $x1))
% 163.66/163.92  (define-fun tptp.c2_0 () Bool false)
% 163.66/163.92  (define-fun tptp.c4_0 () Bool false)
% 163.66/163.92  (define-fun tptp.c5_0 () Bool false)
% 163.66/163.92  (define-fun tptp.a1000 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.c2_1 (($x1 $$unsorted)) Bool (= (as @$$unsorted_0 $$unsorted) $x1))
% 163.66/163.92  (define-fun tptp.a1001 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.c5_1 (($x1 $$unsorted)) Bool (or (= (as @$$unsorted_0 $$unsorted) $x1) (= (as @$$unsorted_1 $$unsorted) $x1)))
% 163.66/163.92  (define-fun tptp.a1002 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1003 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1004 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1005 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.c4_1 (($x1 $$unsorted)) Bool (= (as @$$unsorted_0 $$unsorted) $x1))
% 163.66/163.92  (define-fun tptp.a1006 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.c1_0 () Bool true)
% 163.66/163.92  (define-fun tptp.a1007 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1008 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1009 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1010 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1011 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1012 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1013 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1014 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1015 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1016 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1017 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1018 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1019 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1020 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1021 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1022 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1023 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1024 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1025 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1026 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1027 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1028 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1029 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1030 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1031 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1032 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1033 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1034 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1035 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1036 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1037 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1038 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1039 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1040 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1041 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1042 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1043 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1044 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1045 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1046 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1047 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1048 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1049 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1050 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1051 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1052 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1053 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1054 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1055 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1056 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1057 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1058 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1059 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1060 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1061 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1062 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1063 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1064 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1065 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1066 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1067 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1068 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1069 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1070 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1071 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1072 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1073 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1074 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1075 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1076 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1077 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1078 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1079 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1080 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1081 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1082 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1083 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1084 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1085 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1086 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1087 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1088 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1089 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1090 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1091 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.92  (define-fun tptp.a1092 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1093 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1094 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1095 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1096 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1097 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1098 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1099 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1100 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1101 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1102 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1103 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1104 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1105 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1106 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1107 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1108 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1109 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1110 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1111 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1112 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1113 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1114 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1115 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1116 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1117 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1118 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1119 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1120 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1121 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1122 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1123 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1124 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1125 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1126 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1127 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1128 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1129 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1130 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1131 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1132 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1133 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1134 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1135 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1136 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1137 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1138 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1139 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1140 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1141 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1142 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1143 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1144 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1145 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1146 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1147 () $$unsorted (as @$$unsorted_2 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1148 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1149 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1150 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1151 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1152 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1153 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1154 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1155 () $$unsorted (as @$$unsorted_1 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1156 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  (define-fun tptp.a1157 () $$unsorted (as @$$unsorted_0 $$unsorted))
% 163.66/163.93  )
% 163.66/163.93  % SZS output end FiniteModel for SYN518+1
% 163.66/163.93  % cvc5---1.0.5 exiting
%------------------------------------------------------------------------------