TSTP Solution File: GEO201+1 by SuperZenon---0.0.1

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : SuperZenon---0.0.1
% Problem  : GEO201+1 : TPTP v8.1.0. Released v3.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_super_zenon -p0 -itptp -om -max-time %d %s

% Computer : n022.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 : Sat Jul 16 06:31:00 EDT 2022

% Result   : Theorem 0.19s 0.42s
% Output   : Proof 0.19s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : GEO201+1 : TPTP v8.1.0. Released v3.3.0.
% 0.12/0.12  % Command  : run_super_zenon -p0 -itptp -om -max-time %d %s
% 0.12/0.33  % Computer : n022.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 : Fri Jun 17 15:51:17 EDT 2022
% 0.12/0.33  % CPUTime  : 
% 0.19/0.42  % SZS status Theorem
% 0.19/0.42  (* PROOF-FOUND *)
% 0.19/0.42  (* BEGIN-PROOF *)
% 0.19/0.42  % SZS output start Proof
% 0.19/0.42  1. (convergent_lines T_0 T_1) (-. (convergent_lines T_0 T_1))   ### Axiom
% 0.19/0.42  2. (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (-. (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)))   ### Axiom
% 0.19/0.42  3. (distinct_lines T_1 T_0) (-. (distinct_lines T_1 T_0))   ### Axiom
% 0.19/0.42  4. (convergent_lines T_0 T_1) (-. (convergent_lines T_0 T_1))   ### Axiom
% 0.19/0.42  5. (apart_point_and_line (intersection_point T_0 T_1) T_1) (-. (apart_point_and_line (intersection_point T_0 T_1) T_1))   ### Axiom
% 0.19/0.42  6. ((convergent_lines T_0 T_1) => (-. (apart_point_and_line (intersection_point T_0 T_1) T_1))) (apart_point_and_line (intersection_point T_0 T_1) T_1) (convergent_lines T_0 T_1)   ### Imply 4 5
% 0.19/0.42  7. (All Y, ((convergent_lines T_0 Y) => (-. (apart_point_and_line (intersection_point T_0 Y) Y)))) (convergent_lines T_0 T_1) (apart_point_and_line (intersection_point T_0 T_1) T_1)   ### All 6
% 0.19/0.42  8. (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (apart_point_and_line (intersection_point T_0 T_1) T_1) (convergent_lines T_0 T_1)   ### All 7
% 0.19/0.42  9. (convergent_lines T_0 T_1) (-. (convergent_lines T_0 T_1))   ### Axiom
% 0.19/0.42  10. (apart_point_and_line (intersection_point T_0 T_1) T_0) (-. (apart_point_and_line (intersection_point T_0 T_1) T_0))   ### Axiom
% 0.19/0.42  11. ((convergent_lines T_0 T_1) => (-. (apart_point_and_line (intersection_point T_0 T_1) T_0))) (apart_point_and_line (intersection_point T_0 T_1) T_0) (convergent_lines T_0 T_1)   ### Imply 9 10
% 0.19/0.42  12. (All Y, ((convergent_lines T_0 Y) => (-. (apart_point_and_line (intersection_point T_0 Y) T_0)))) (convergent_lines T_0 T_1) (apart_point_and_line (intersection_point T_0 T_1) T_0)   ### All 11
% 0.19/0.42  13. (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (apart_point_and_line (intersection_point T_0 T_1) T_0) (convergent_lines T_0 T_1)   ### All 12
% 0.19/0.42  14. (convergent_lines T_0 T_1) (-. (convergent_lines T_0 T_1))   ### Axiom
% 0.19/0.42  15. (convergent_lines T_0 T_0) (-. (convergent_lines T_0 T_0))   ### Axiom
% 0.19/0.42  16. (All X, (-. (convergent_lines X X))) (convergent_lines T_0 T_0)   ### All 15
% 0.19/0.42  17. (-. (convergent_lines T_1 T_0)) (convergent_lines T_1 T_0)   ### Axiom
% 0.19/0.42  18. ((convergent_lines T_0 T_1) => ((convergent_lines T_0 T_0) \/ (convergent_lines T_1 T_0))) (-. (convergent_lines T_1 T_0)) (All X, (-. (convergent_lines X X))) (convergent_lines T_0 T_1)   ### DisjTree 14 16 17
% 0.19/0.42  19. (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (convergent_lines T_0 T_1) (All X, (-. (convergent_lines X X))) (-. (convergent_lines T_1 T_0))   ### All 18
% 0.19/0.42  20. (apart_point_and_line (intersection_point T_1 T_0) T_1) (-. (apart_point_and_line (intersection_point T_1 T_0) T_1))   ### Axiom
% 0.19/0.42  21. ((convergent_lines T_1 T_0) => (-. (apart_point_and_line (intersection_point T_1 T_0) T_1))) (apart_point_and_line (intersection_point T_1 T_0) T_1) (All X, (-. (convergent_lines X X))) (convergent_lines T_0 T_1) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z))))   ### Imply 19 20
% 0.19/0.42  22. (All Y, ((convergent_lines T_1 Y) => (-. (apart_point_and_line (intersection_point T_1 Y) T_1)))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (convergent_lines T_0 T_1) (All X, (-. (convergent_lines X X))) (apart_point_and_line (intersection_point T_1 T_0) T_1)   ### All 21
% 0.19/0.42  23. (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (apart_point_and_line (intersection_point T_1 T_0) T_1) (All X, (-. (convergent_lines X X))) (convergent_lines T_0 T_1) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z))))   ### All 22
% 0.19/0.42  24. (apart_point_and_line (intersection_point T_1 T_0) T_0) (-. (apart_point_and_line (intersection_point T_1 T_0) T_0))   ### Axiom
% 0.19/0.42  25. ((convergent_lines T_1 T_0) => (-. (apart_point_and_line (intersection_point T_1 T_0) T_0))) (apart_point_and_line (intersection_point T_1 T_0) T_0) (All X, (-. (convergent_lines X X))) (convergent_lines T_0 T_1) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z))))   ### Imply 19 24
% 0.19/0.42  26. (All Y, ((convergent_lines T_1 Y) => (-. (apart_point_and_line (intersection_point T_1 Y) Y)))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (convergent_lines T_0 T_1) (All X, (-. (convergent_lines X X))) (apart_point_and_line (intersection_point T_1 T_0) T_0)   ### All 25
% 0.19/0.42  27. (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (apart_point_and_line (intersection_point T_1 T_0) T_0) (All X, (-. (convergent_lines X X))) (convergent_lines T_0 T_1) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z))))   ### All 26
% 0.19/0.42  28. (((distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) /\ (distinct_lines T_1 T_0)) => ((apart_point_and_line (intersection_point T_0 T_1) T_1) \/ ((apart_point_and_line (intersection_point T_0 T_1) T_0) \/ ((apart_point_and_line (intersection_point T_1 T_0) T_1) \/ (apart_point_and_line (intersection_point T_1 T_0) T_0))))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (convergent_lines T_0 T_1) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (distinct_lines T_1 T_0) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0))   ### DisjTree 2 3 8 13 23 27
% 0.19/0.42  29. (All V, (((distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) /\ (distinct_lines T_1 V)) => ((apart_point_and_line (intersection_point T_0 T_1) T_1) \/ ((apart_point_and_line (intersection_point T_0 T_1) V) \/ ((apart_point_and_line (intersection_point T_1 T_0) T_1) \/ (apart_point_and_line (intersection_point T_1 T_0) V)))))) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (distinct_lines T_1 T_0) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (convergent_lines T_0 T_1) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (-. (convergent_lines X X))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z))))   ### All 28
% 0.19/0.42  30. ((convergent_lines T_0 T_1) => ((distinct_lines T_1 T_0) \/ (convergent_lines T_0 T_0))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (All V, (((distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) /\ (distinct_lines T_1 V)) => ((apart_point_and_line (intersection_point T_0 T_1) T_1) \/ ((apart_point_and_line (intersection_point T_0 T_1) V) \/ ((apart_point_and_line (intersection_point T_1 T_0) T_1) \/ (apart_point_and_line (intersection_point T_1 T_0) V)))))) (convergent_lines T_0 T_1)   ### DisjTree 1 29 16
% 0.19/0.42  31. (All Z, ((convergent_lines T_0 T_1) => ((distinct_lines T_1 Z) \/ (convergent_lines T_0 Z)))) (convergent_lines T_0 T_1) (All V, (((distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) /\ (distinct_lines T_1 V)) => ((apart_point_and_line (intersection_point T_0 T_1) T_1) \/ ((apart_point_and_line (intersection_point T_0 T_1) V) \/ ((apart_point_and_line (intersection_point T_1 T_0) T_1) \/ (apart_point_and_line (intersection_point T_1 T_0) V)))))) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (-. (convergent_lines X X))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z))))   ### All 30
% 0.19/0.42  32. (All U, (All V, (((distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) /\ (distinct_lines U V)) => ((apart_point_and_line (intersection_point T_0 T_1) U) \/ ((apart_point_and_line (intersection_point T_0 T_1) V) \/ ((apart_point_and_line (intersection_point T_1 T_0) U) \/ (apart_point_and_line (intersection_point T_1 T_0) V))))))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (convergent_lines T_0 T_1) (All Z, ((convergent_lines T_0 T_1) => ((distinct_lines T_1 Z) \/ (convergent_lines T_0 Z))))   ### All 31
% 0.19/0.42  33. (All Y, (All U, (All V, (((distinct_points (intersection_point T_0 T_1) Y) /\ (distinct_lines U V)) => ((apart_point_and_line (intersection_point T_0 T_1) U) \/ ((apart_point_and_line (intersection_point T_0 T_1) V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V)))))))) (All Z, ((convergent_lines T_0 T_1) => ((distinct_lines T_1 Z) \/ (convergent_lines T_0 Z)))) (convergent_lines T_0 T_1) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (-. (convergent_lines X X))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z))))   ### All 32
% 0.19/0.42  34. (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (convergent_lines T_0 T_1) (All Z, ((convergent_lines T_0 T_1) => ((distinct_lines T_1 Z) \/ (convergent_lines T_0 Z))))   ### All 33
% 0.19/0.42  35. (All Y, (All Z, ((convergent_lines T_0 Y) => ((distinct_lines Y Z) \/ (convergent_lines T_0 Z))))) (convergent_lines T_0 T_1) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (-. (convergent_lines X X))) (All Z, ((convergent_lines T_0 T_1) => ((convergent_lines T_0 Z) \/ (convergent_lines T_1 Z)))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V)))))))))   ### All 34
% 0.19/0.42  36. (All Y, (All Z, ((convergent_lines T_0 Y) => ((convergent_lines T_0 Z) \/ (convergent_lines Y Z))))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (convergent_lines T_0 T_1) (All Y, (All Z, ((convergent_lines T_0 Y) => ((distinct_lines Y Z) \/ (convergent_lines T_0 Z)))))   ### All 35
% 0.19/0.42  37. (All X, (All Y, (All Z, ((convergent_lines X Y) => ((distinct_lines Y Z) \/ (convergent_lines X Z)))))) (convergent_lines T_0 T_1) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (-. (convergent_lines X X))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All Y, (All Z, ((convergent_lines T_0 Y) => ((convergent_lines T_0 Z) \/ (convergent_lines Y Z)))))   ### All 36
% 0.19/0.42  38. (All X, (All Y, (All Z, ((convergent_lines X Y) => ((convergent_lines X Z) \/ (convergent_lines Y Z)))))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)) (convergent_lines T_0 T_1) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((distinct_lines Y Z) \/ (convergent_lines X Z))))))   ### All 37
% 0.19/0.42  39. (-. (-. (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0)))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((distinct_lines Y Z) \/ (convergent_lines X Z)))))) (convergent_lines T_0 T_1) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (-. (convergent_lines X X))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((convergent_lines X Z) \/ (convergent_lines Y Z))))))   ### NotNot 38
% 0.19/0.42  40. (-. ((convergent_lines T_0 T_1) => (-. (distinct_points (intersection_point T_0 T_1) (intersection_point T_1 T_0))))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((convergent_lines X Z) \/ (convergent_lines Y Z)))))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((distinct_lines Y Z) \/ (convergent_lines X Z))))))   ### NotImply 39
% 0.19/0.42  41. (-. (All Y, ((convergent_lines T_0 Y) => (-. (distinct_points (intersection_point T_0 Y) (intersection_point Y T_0)))))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((distinct_lines Y Z) \/ (convergent_lines X Z)))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (-. (convergent_lines X X))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((convergent_lines X Z) \/ (convergent_lines Y Z))))))   ### NotAllEx 40
% 0.19/0.42  42. (-. (All X, (All Y, ((convergent_lines X Y) => (-. (distinct_points (intersection_point X Y) (intersection_point Y X))))))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((convergent_lines X Z) \/ (convergent_lines Y Z)))))) (All X, (All Y, (All U, (All V, (((distinct_points X Y) /\ (distinct_lines U V)) => ((apart_point_and_line X U) \/ ((apart_point_and_line X V) \/ ((apart_point_and_line Y U) \/ (apart_point_and_line Y V))))))))) (All X, (-. (convergent_lines X X))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) X))))) (All X, (All Y, ((convergent_lines X Y) => (-. (apart_point_and_line (intersection_point X Y) Y))))) (All X, (All Y, (All Z, ((convergent_lines X Y) => ((distinct_lines Y Z) \/ (convergent_lines X Z))))))   ### NotAllEx 41
% 0.19/0.42  % SZS output end Proof
% 0.19/0.42  (* END-PROOF *)
%------------------------------------------------------------------------------