(** * Euclid's Elements  Book I *)
(** We present in this file the formalization of the propositions from the first book of Euclid's Elements. Our formal proofs are not formalizations of Euclid's proofs; they can be very different because we do not use the axiom system of Euclid. The proofs are performed in the context of Tarski's axioms. We have proven the bi-interpretability with the corresponding Hilbert's axioms, hence the user can choose his favorite axiom system.  The english version of the propositions is imported from the xml version of Euclid's Elements provided by the Perseus project: http://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.01.0086 . The GeoGebra figures have been created by Gianluigi Trivia: https://www.geogebra.org/m/qScJxt8s .  Hence, this file is licenced under https://creativecommons.org/licenses/by-sa/3.0/us/ in addition to LGPL 3.0. *)
(** # <script type="text/javascript" src="https://www.geogebra.org/scripts/deployggb.js"></script> <script type="text/javascript"> var applet1 = new GGBApplet({material_id: "r4D6cEeh"}, true); var applet2 = new GGBApplet({material_id: "ERFPd6Gx"}, true); var applet3 = new GGBApplet({material_id: "rXcJrHZh"}, true); var applet4 = new GGBApplet({material_id: "uEgvYkrc"}, true); var applet5 = new GGBApplet({material_id: "tn33uzyD"}, true); var applet6 = new GGBApplet({material_id: "VCsxJRRH"}, true); var applet7 = new GGBApplet({material_id: "d5dMrQXs"}, true); var applet8 = new GGBApplet({material_id: "aQqPfsMd"}, true); var applet9 = new GGBApplet({material_id: "RjFXAa9f"}, true); var applet10 = new GGBApplet({material_id: "mmRErFqd"}, true); var applet11 = new GGBApplet({material_id: "pMdtFxq6"}, true); var applet12 = new GGBApplet({material_id: "z5AkXe6N"}, true); var applet13 = new GGBApplet({material_id: "ZAHjwcyc"}, true); var applet14 = new GGBApplet({material_id: "UKg84dFT"}, true); var applet15 = new GGBApplet({material_id: "bnjUjQ9X"}, true); var applet16 = new GGBApplet({material_id: "Gg6rHEs3"}, true); var applet17 = new GGBApplet({material_id: "npxkCJpC"}, true); var applet18 = new GGBApplet({material_id: "VFYgBjGh"}, true); var applet19 = new GGBApplet({material_id: "AfKPEzb7"}, true); var applet20 = new GGBApplet({material_id: "fH6japew"}, true); var applet21 = new GGBApplet({material_id: "rXrbmX4t"}, true); var applet22 = new GGBApplet({material_id: "vc4qEQeN"}, true); var applet23 = new GGBApplet({material_id: "bThxPU7Q"}, true); var applet24 = new GGBApplet({material_id: "Tuz27uFN"}, true); var applet25 = new GGBApplet({material_id: "WwqvjYpu"}, true); var applet26 = new GGBApplet({material_id: "JUMQJ7pm"}, true); var applet27 = new GGBApplet({material_id: "bVZjmJwk"}, true); var applet28 = new GGBApplet({material_id: "zsQmywaj"}, true); var applet29 = new GGBApplet({material_id: "DhjHHgP5"}, true); var applet30 = new GGBApplet({material_id: "bKxnmXBq"}, true); var applet31 = new GGBApplet({material_id: "FfT7t9Cu"}, true); var applet32 = new GGBApplet({material_id: "mcBCaz8R"}, true); var applet33 = new GGBApplet({material_id: "k48aN5wj"}, true); var applet34 = new GGBApplet({material_id: "KgPuPTfy"}, true); var applet35 = new GGBApplet({material_id: "C7YJBaaB"}, true); var applet36 = new GGBApplet({material_id: "gdesjdZD"}, true); var applet37 = new GGBApplet({material_id: "TNp5dZa6"}, true); var applet38 = new GGBApplet({material_id: "B4FWM9g7"}, true); var applet39 = new GGBApplet({material_id: "jHyHD9q7"}, true); var applet40 = new GGBApplet({material_id: "W5SANQJp"}, true); var applet41 = new GGBApplet({material_id: "ZQtgFvAM"}, true); var applet42 = new GGBApplet({material_id: "UQYRQX7w"}, true); var applet43 = new GGBApplet({material_id: "anfyFSKf"}, true); var applet44 = new GGBApplet({material_id: "y6tFXckE"}, true); var applet45 = new GGBApplet({material_id: "vJQkwr7r"}, true); var applet46 = new GGBApplet({material_id: "GnrYvWx3"}, true); var applet47 = new GGBApplet({material_id: "tdxHWEBA"}, true); var applet48 = new GGBApplet({material_id: "T4HcNAgy"}, true);  window.onload = function() { applet1.inject('applet_container1', 'preferHTML5'); applet2.inject('applet_container2', 'preferHTML5'); applet3.inject('applet_container3', 'preferHTML5'); applet4.inject('applet_container4', 'preferHTML5'); applet5.inject('applet_container5', 'preferHTML5'); applet6.inject('applet_container6', 'preferHTML5'); applet7.inject('applet_container7', 'preferHTML5'); applet8.inject('applet_container8', 'preferHTML5'); applet9.inject('applet_container9', 'preferHTML5'); applet10.inject('applet_container10', 'preferHTML5'); applet11.inject('applet_container11', 'preferHTML5'); applet12.inject('applet_container12', 'preferHTML5'); applet13.inject('applet_container13', 'preferHTML5'); applet14.inject('applet_container14', 'preferHTML5'); applet15.inject('applet_container15', 'preferHTML5'); applet16.inject('applet_container16', 'preferHTML5'); applet17.inject('applet_container17', 'preferHTML5'); applet18.inject('applet_container18', 'preferHTML5'); applet19.inject('applet_container19', 'preferHTML5'); applet20.inject('applet_container20', 'preferHTML5'); applet21.inject('applet_container21', 'preferHTML5'); applet22.inject('applet_container22', 'preferHTML5'); applet23.inject('applet_container23', 'preferHTML5'); applet24.inject('applet_container24', 'preferHTML5'); applet25.inject('applet_container25', 'preferHTML5'); applet26.inject('applet_container26', 'preferHTML5'); applet27.inject('applet_container27', 'preferHTML5'); applet28.inject('applet_container28', 'preferHTML5'); applet29.inject('applet_container29', 'preferHTML5'); applet30.inject('applet_container30', 'preferHTML5'); applet31.inject('applet_container31', 'preferHTML5'); applet32.inject('applet_container32', 'preferHTML5'); applet33.inject('applet_container33', 'preferHTML5'); applet34.inject('applet_container34', 'preferHTML5'); applet35.inject('applet_container35', 'preferHTML5'); applet36.inject('applet_container36', 'preferHTML5'); applet37.inject('applet_container37', 'preferHTML5'); applet38.inject('applet_container38', 'preferHTML5'); applet39.inject('applet_container39', 'preferHTML5'); applet40.inject('applet_container40', 'preferHTML5'); applet41.inject('applet_container41', 'preferHTML5'); applet42.inject('applet_container42', 'preferHTML5'); applet43.inject('applet_container43', 'preferHTML5'); applet44.inject('applet_container44', 'preferHTML5'); applet45.inject('applet_container45', 'preferHTML5'); applet46.inject('applet_container46', 'preferHTML5'); applet47.inject('applet_container47', 'preferHTML5'); applet48.inject('applet_container48', 'preferHTML5'); } </script> # **)
Require Export GeoCoq.Meta_theory.Continuity.elementary_continuity_props.
Require Export GeoCoq.Tarski_dev.Ch16_coordinates_with_functions.
(** * Proposition 1 On a given finite straight line to construct an equilateral triangle. *)
(** # <div style="width:748px;height:397px;display:block" id="applet_container1"></div> # **)
(** We proved this proposition in the context of euclidean geometry without any continuity axiom. It can also be proven more easily assuming a circle-circle intersection axiom, as Euclid implicitly did. Victor Pambuccian has shown that these hypotheses are minimal. *)
Section Book_1_prop_1_euclidean.
Context `{T2D:Tarski_2D}.
Context `{TE:@Tarski_euclidean Tn TnEQD}.

(* Specifications: *)
Lemma prop_1_euclidean :
forall A B, exists C, Cong A B A C /\ Cong A B B C.