Giter Club home page Giter Club logo

highschoolgeometry's Introduction

High School Geometry

CI Contributing Code of Conduct Zulip

This Coq library is dedicated to high-shool geometry teaching. The axiomatisation for affine Euclidean space is in a non analytic setting. Includes a proof of Ptolemy's theorem.

Meta

Building and installation instructions

The easiest way to install the latest released version of High School Geometry is via OPAM:

opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq-high-school-geometry

To instead build and install manually, do:

git clone https://github.com/coq-community/HighSchoolGeometry.git
cd HighSchoolGeometry
make   # or make -j <number-of-cores-on-your-machine> 
make install

Documentation in English

See also the documentation in French below.

This library consists in a collection of "chapters" spanning most of geometry taught to French high-shool students. We do not even try to minimize the number of axioms but rather to get as close as possible to informal definitions, theorems and proofs. In order to focus on reasoning issues, we use a non analytic description of euclidean geometry. The interested reader can find details about this work in Inria research report RR-4893: Premiers pas vers un cours de géométrie en Coq pour le lycée.

The first part "2-3 dimensional affine geometry" deals with formalising:

  • points, vectors, barycenters, oriented lengths, (Rutile.v, Field_affine.v, vecteur.v, barycentre.v, milieu.v, mesure_algebrique.v)
  • collinearity, coplanarity, (alignement.v, coplanarite.v)
  • parallelism and incidence of straight lines, (parallelisme_concours.v)
  • proofs of Thales and Desargues theorems.(affine_classiques.v)

In the second part "3 dimensional affine geometry", we prove theorems about:

  • relative positions of two straight lines in the space (Droite_espace.v)
  • relative positions of a straight line and a plane (Droite_plan_espace.v)
  • relative positions of two planes (Plans_paralleles.v)
  • parallelism and incidence properties for several planes and straight lines (Plan_espace.v)

The third part "2-3 dimensional euclidean geometry" deals with formalising:

  • scalar product, orthogonal vectors, and unitary vectors (produit_scalaire.v, orthogonalite.v, representant_unitaire.v)
  • eulidean distance and orthogonal projection on a line (distance_euclidienne.v, projection_orthogonale.v)
  • proofs of Pythagorean theorem, median theorem (euclidien_classiques.v)

The fourth part "space orthogonality" deals with formalising:

  • orthogonal line and plan (orthogonalite_espace.v) We use these definitions to solve a high-school diploma (baccalaureat) exercise in a formal way.(exercice_espace.v).

The fifth part "plane euclidean geometry" deals with formalising:

  • affine coordinate system, orthogonal coordinate system, affine coordinates (repere_plan.v, repere_ortho_plan.v)
  • oriented angles (angles_vecteurs.v, angles_droites.v)
  • trigonometry (trigo.v)
  • proofs of Pythagorean theorem, median theorem, Al-Kashi and sine theorems (metrique_triangle.v)
  • perpendicular bisector, isocel triangle, orthocenter, (mediatrice.v, isocele.v, orthocentre.v)
  • circle, cocyclicity, tangency (line or circle tangent) (cercle.v, cocyclicite.v, complements_cercle.v, contact.v)
  • signed area, determinant (aire_signee.v, determinant.v)
  • equations for straight lines and circles in plane geometry (equations_droites.v, equations_cercles.v)

The sixth part "plane transformations", deals with formalising:

  • translations, homothety (dilatations.v, composee_dilatations.v, homothetie_plane.v)
  • rotations, reflexions (rotation_plane.v, reflexion_plane.v)
  • composition of these transformations. (composee_reflexions.v, composee_translation_rotation.v, composee_transformations.v, similitudes_directes.v)
  • conservation of tangency for these transformations. (transformations_contact.v)

In the seventh part "applications", we prove:

  • Miquel's theorem, orthocenter theorem, Simson line (applications_cocyclicite.v)
  • circle power and plane inversion (puissance_cercle.v, inversion.v)
  • Euler line theorem and nine point circle theorem (droite_Euler.v, homoth_Euler.v).

The eighth part "complex numbers", deals with formalising:

  • the field properties of complex numbers (complexes.v, formes_complexes.v, operations_complexes.v, complexes_conjugaison.v)
  • application to geometry of complex numbers (complexes_dilations.v, complexes_similitudes.v, complexes_transformations.v, complexes_exercice.v, complexes_inversion.v, complexes_analytique.v)

Tuan-Minh Pham introduced the concept of orientation and proved Ptolemy's theorem (orientation.v, triangles_semblables.v, Ptolemee.v). This work is described in a separate paper.

Documentation en français

Ce développement propose une collection de "chapitres" couvrant une large partie du programme de géométrie du lycée en France. Le but n'est pas d'avoir un nombre minimal d'axiomes mais de "coller au plus près" des définitions, théorèmes et démonstrations donnés au lycée. Pour privilégier le raisonnement, la formalisation choisie n'utilise pas le recours à la méthode analytique. On trouvera expliquée en détail la démarche utilisée dans le Inria rapport de recherche RR-4893: Premiers pas vers un cours de géométrie en Coq pour le lycée.

Dans la partie "géométrie affine (dimension 2 et 3)", sont formalisés

  • les points, vecteurs, barycentres, mesures algébriques, (Rutile.v, Field_affine.v, vecteur.v, barycentre.v, milieu.v, mesure_algebrique.v)
  • les notions d'alignement et de coplanarité, (alignement.v, coplanarite.v)
  • les notions de parallélisme et concours de droites, (parallelisme_concours.v)
  • les preuves des théorèmes de Thalès et de Desargues. (affine_classiques.v)

Dans la partie "géométrie affine dans l'espace", ont été démontrés les théorèmes concernant:

  • les positions relatives de deux droites dans l'espace (Droite_espace.v)
  • les positions relatives d'une droite et d'un plan (Droite_plan_espace.v)
  • les positions relatives de deux plans (Plans_paralleles.v)
  • les propriétés d'incidence et de parallélisme de plusieurs droites et plans de l'espace. (Plan_espace.v)

Dans la partie "géométrie euclidienne (dimension 2 et 3)", sont formalisés

  • le produit scalaire, la notion d'orthogonalité de vecteurs et de vecteurs unitaires, (produit_scalaire.v, orthogonalite.v, representant_unitaire.v)
  • la distance euclidienne et la projection orthogonale sur une droite. (distance_euclidienne.v, projection_orthogonale.v)
  • les preuves des théorèmes de Pythagore, de la médiane et l'étude de ligne de niveau (euclidien_classiques.v)

Dans la partie "orthogonalité dans l'espace", est formalisée

  • la notion de droite et plan orthogonaux (orthogonalite_espace.v)
  • un exercice donné au baccalauréat S est traité comme application (exercice_espace.v).

Dans la partie "géométrie euclidienne plane", sont formalisés

  • les repères affines, les repère orthogonaux et la notion de coordonnées de points (repere_plan.v, repere_ortho_plan.v)
  • les angles orientés de vecteurs et de droites (angles_vecteurs.v, angles_droites.v)
  • la trigonométrie (trigo.v)
  • la trigonométrie du triangle rectangle et les théorèmes d'Al-Kashi et des sinus (metrique_triangle.v)
  • les notions de médiatrice, triangle isocèle, orthocentre (mediatrice.v, isocele.v, orthocentre.v)
  • les notions de cercle, cocyclicité, contact (tangente et cercles tangents) (cercle.v, cocyclicite.v, complements_cercle.v, contact.v)
  • les notions d'aires signées et de déterminant de vecteurs (aire_signee.v, determinant.v)
  • une partie de géométrie analytique concernant les équations de droites et les équations de cercle (equations_droites.v, equations_cercles.v)

Dans la partie "transformations planes", sont étudiées

  • les translations, homothéties et leur composées (dilatations.v, composee_dilatations.v, homothetie_plane.v)
  • les rotations, symétries axiales (rotation_plane.v, reflexion_plane.v)
  • les composées de ces transformations dont les similitudes directes. (composee_reflexions.v, composee_translation_rotation.v, composee_transformations.v, similitudes_directes.v)
  • les propriétés de conservation du contact par ces transformations (transformations_contact.v)

Dans la partie "applications", sont démontrés

  • les théorèmes de Miquel, des symétriques de l'orthocentre, de la droite de Simson (applications_cocyclicite.v)
  • les notions de puissance d'un point par rapport à un cercle et d'inversion plane (puissance_cercle.v, inversion.v)
  • les théorèmes de la droite d'Euler et du cercle des neuf points (droite_Euler.v et homoth_Euler.v).

Dans la partie "nombres complexes", sont démontrées

  • les propriétés algébriques du corps des nombres complexes (complexes.v, formes_complexes.v, operations_complexes.v, complexes_conjugaison.v)
  • la caractérisation géométrique des transformations d'écriture complexe : z -> a z + b (complexes_dilations.v, complexes_similitudes.v, complexes_transformations.v, complexes_exercice.v)
  • l'écriture complexe de l'inversion (complexes_inversion.v)
  • l'écriture analytique de toutes les transformations étudiées (complexes_analytique.v)

highschoolgeometry's People

Contributors

palmskog avatar thery avatar ybertot avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.