Require Export GeoCoq.Axioms.continuity_axioms.
Require Export GeoCoq.Tarski_dev.Annexes.circles.
Require Export GeoCoq.Tarski_dev.Annexes.sums.
Section Elementary_Continuity_Props.
Context `{TnEQD:Tarski_neutral_dimensionless_with_decidable_point_equality}.
(**    All these properties are known to be equivalent in an arbitrary Hilbert plane (Tarski_2D) as shown by Strommer, but we don't have formalized the proof yet.  We have the following proofs: - five equivalent variants of the circle-circle continuity axiom; - three equivalent variants of the line-circle continuity axiom; - the implication from the circle-circle continuity axiom to the line-circle continuity axiom.  Since we have proved the circle-circle continuity axiom to follow from Tarski's axiom of continuity, all these properties do. *)

(* Specifications: *)
Lemma segment_circle__one_point_line_circle : segment_circle <-> one_point_line_circle.
Lemma one_point_line_circle__two_points_line_circle :
one_point_line_circle <-> two_points_line_circle.
Lemma circle_circle_bis__circle_circle_axiom : circle_circle_bis <-> circle_circle_axiom.
Lemma circle_circle__circle_circle_bis : circle_circle -> circle_circle_bis.
Lemma circle_circle_bis__one_point_line_circle :
circle_circle_bis -> one_point_line_circle.
Lemma circle_circle__circle_circle_two :
circle_circle <-> circle_circle_two.
Lemma euclid_22_aux : forall A B C D E F A' B' E' F' C1 C2 E1,
SumS A B C D E' F' -> SumS C D E F A' B' -> Le E F E' F' -> Le A B A' B' ->
Out A B C1 -> Cong A C1 C D -> Bet B A C2 -> Cong A C2 C D ->
Out B A E1 -> Cong B E1 E F ->
Bet C1 E1 C2.
Lemma circle_circle_bis__euclid_22 : circle_circle_bis -> euclid_s_prop_1_22.
Lemma triangle_inequality1 : forall A B C D E, SumS A B B C D E -> Le A C D E.
Lemma euclid_22__circle_circle : euclid_s_prop_1_22 -> circle_circle.
Theorem equivalent_variants_of_circle_circle :
all_equiv
(circle_circle::
circle_circle_two::
circle_circle_bis::
circle_circle_axiom::
euclid_s_prop_1_22::
nil).
Theorem equivalent_variants_of_line_circle :
all_equiv
(segment_circle::
one_point_line_circle::
two_points_line_circle::
nil).