Definition gHalfA A' O' B' A O B := exists P, HalfA P A O B /\ CongA A' O' B' A O P.

(* Specifications: *)
Lemma ghalfa_distincts : forall A' O' B' A O B, gHalfA A' O' B' A O B ->
O' <> A' /\ O' <> B' /\ O <> A /\ O <> B.
Lemma halfa__ghalfa : forall P A O B, HalfA P A O B -> gHalfA A O P A O B.
Lemma ghalfa_left_comm : forall A' O' B' A O B, gHalfA A' O' B' A O B ->
gHalfA B' O' A' A O B.
Lemma ghalfa_right_comm : forall A' O' B' A O B, gHalfA A' O' B' A O B ->
gHalfA A' O' B' B O A.
Lemma ghalfa_comm : forall A' O' B' A O B, gHalfA A' O' B' A O B ->
gHalfA B' O' A' B O A.
Lemma ghalfa_exists : forall A O B, ~ Bet A O B -> exists A' O' B', gHalfA A' O' B' A O B.
Lemma ghalfa__suma : forall A' O' B' A O B, gHalfA A' O' B' A O B ->
SumA A' O' B' A' O' B' A O B.
Lemma ghalfa__acute : forall A' O' B' A O B, gHalfA A' O' B' A O B ->
Acute A' O' B'.
Lemma ghalfa_chara : forall A' O' B' A O B,
gHalfA A' O' B' A O B <-> (Acute A' O' B' /\ SumA A' O' B' A' O' B' A O B).
Lemma ghalfa__out : forall A O B, gHalfA A O B A O B -> Out O A B.
Lemma ghalfa_preserves_lta : forall A B C X Y Z A' B' C' X' Y' Z',
gHalfA A' B' C' A B C -> gHalfA X' Y' Z' X Y Z -> LtA A B C X Y Z -> LtA A' B' C' X' Y' Z'.