Lemma: line-circle-intersection-lemma
a,b,c,r:ℝ.
  ((r0 < (a^2 b^2))
   (r0 ≤ (((a^2 b^2) r^2) c^2))
   (∀x,y:ℝ.
        ((((x ((a c) (b rsqrt(((a^2 b^2) r^2) c^2))/a^2 b^2))
        ∧ (y ((b c) rsqrt(((a^2 b^2) r^2) c^2)/a^2 b^2)))
        ∨ ((x ((a c) rsqrt(((a^2 b^2) r^2) c^2)/a^2 b^2))
          ∧ (y ((b c) (a rsqrt(((a^2 b^2) r^2) c^2))/a^2 b^2))))
         ((((a x) (b y)) c) ∧ ((x^2 y^2) r^2)))))

Definition: r2-perp
r2-perp(x) ==  λi.if (i =z 0) then (-(x 1)/||x||) else (x 0/||x||) fi 

Lemma: r2-perp_wf
[x:ℝ^2]. ((r0 < ||x||)  (r2-perp(x) ∈ {y:ℝ^2| (x⋅r0) ∧ (||y|| r1)} ))

Lemma: r2-dot-product-eq-0-iff-perp
x:ℝ^2. ((r0 < ||x||)  (∀y:ℝ^2. (y⋅r0 ⇐⇒ ∃t:ℝreq-vec(2;y;t*r2-perp(x)))))

Definition: vec-midpoint
vec-midpoint(a;b) ==  (r1/r(2))*a b

Lemma: vec-midpoint_wf
[n:ℕ]. ∀[a,b:ℝ^n].  (vec-midpoint(a;b) ∈ ℝ^n)

Lemma: vec-midpoint-dist
[n:ℕ]. ∀[a,b:ℝ^n].  (d(a;vec-midpoint(a;b)) ((r1/r(2)) d(a;b)))

Lemma: vec-midpoint-symmetry
[n:ℕ]. ∀[a,b:ℝ^n].  req-vec(n;vec-midpoint(b;a);vec-midpoint(a;b))

Lemma: r2-equidistant-implies
a,b:ℝ^2.  (a ≠  (∀x:ℝ^2. (ax=bx  (∃t:ℝreq-vec(2;x;vec-midpoint(a;b) t*r2-perp(b a))))))

Lemma: r2-equidistant-implies'
a,b:ℝ^2.  (a ≠  (∀x:ℝ^2. (xa=xb  (∃t:ℝreq-vec(2;x;vec-midpoint(a;b) t*r2-perp(b a))))))

Lemma: r2-upper-dimension
[a,b,p,q,r:ℝ^2].
  (p ≠ q ∧ q ≠ r ∧ r ≠ p ∧ p-q-r) ∧ q-r-p) ∧ r-p-q))) supposing (ra=rb and qa=qb and pa=pb and a ≠ b)

Definition: r2-eu-prim
r2-eu-prim() ==  Point=ℝ^2 O=λa,b,c,d. (d(c;d) < d(a;b)) Left=λa,b,c. r2-left(a;b;c)

Lemma: r2-eu-prim_wf
r2-eu-prim() ∈ GeometryPrimitives

Lemma: r2-basic-geo-axioms
BasicGeometryAxioms(r2-eu-prim())

Lemma: r2-gt-or
a,b,c:ℝ^2. ∀d:{d:ℝ^2| d(c;d) < d(a;b)} . ∀x,y:ℝ^2.  ((d(c;d) < d(x;y)) ∨ (d(x;y) < d(a;b)))

Definition: r2-eu
EuclideanPlane(ℝ^2) ==
  primitive=r2-eu-prim()
  Ssquashstable=TERMOF{sq_stable-dist-rless:o, 1:l} 2
  Lorsquashstable=TERMOF{sq_stable__r2-left-or:o, 1:l}
  SepOr=TERMOF{r2-sep-or:o, 1:l}
  nontriv=TERMOF{r2-nontrivial:o, 1:l}
  SS=TERMOF{r2-plane-separation:o, 1:l}
  SC=TERMOF{r2-straightedge-compass-simple:o, 1:l}
  CC=TERMOF{r2-compass-compass-simple:o, 1:l}

Lemma: r2-eu_wf
EuclideanPlane(ℝ^2) ∈ EuclideanPlane

Definition: r2-line
r2-line ==  a:ℝ^2 × b:ℝ^2 × a ≠ b

Lemma: r2-line_wf
r2-line ∈ Type

Definition: r2-line-sep
r2-line-sep(l;m) ==  ∃p:ℝ^2. ((|pfst(l)fst(snd(l))| r0) ∧ |pfst(m)fst(snd(m))| ≠ r0)

Lemma: r2-line-sep_wf
l,m:r2-line.  (r2-line-sep(l;m) ∈ ℙ)

Definition: r2-line-eq
r2-line-eq(l;m) ==  ¬r2-line-sep(l;m)

Lemma: r2-line-eq_wf
l,m:r2-line.  (r2-line-eq(l;m) ∈ ℙ)

Lemma: r2-line-eq_weakening
l,m:r2-line.  ((l m ∈ r2-line)  r2-line-eq(l;m))

Definition: line-det
line-det(a;b;c;d) ==
  ((((d 1) (a 1)) (d 1) (a 0) (d 0) (a 1)) ((d 0) (a 0))) (((b 1) (c 1)) (b 1) (c 0) (b 0)
  (c 1))
  ((b 0) (c 0))

Lemma: line-det_wf
[a,b,c,d:ℝ^2].  (line-det(a;b;c;d) ∈ ℝ)

Definition: r2-lines-par
r2-lines-par(a;b;c;d) ==  line-det(a;b;c;d) ≠ r0

Lemma: r2-lines-par_wf
[a,b,c,d:ℝ^2].  (r2-lines-par(a;b;c;d) ∈ ℙ)



Home Index