Definition bet a b c := betE a b c || betS a b c.

(* Specifications: *)
Lemma bet_sym a b c : bet a b c = bet c b a.
Lemma bet_symmetry a b c : bet a b c -> bet c b a.
Lemma betS_id a b : betS a b a = false.
Lemma bet_betE a b c : bet a b c = betE a b c || bet a b c.
Lemma betE_axx a x : betE a x x.
Lemma betE_xxa x a : betE x x a.
Lemma bet_axx a x : bet a x x.
Lemma bet_xxa x a : bet x x a.
Lemma bet_opp a b c : bet a b c = bet (-a) (-b) (-c).
Lemma bet_trans a b c d : bet a b c = bet (a+d) (b+d) (c+d).
Lemma betS_extension x y z: betS x y z -> z = extension x y (betR x y z).
Lemma extension_bet a b k1 : 0 < k1 -> k1 < 1 -> bet a b (extension a b k1).
Lemma contraction_bet a b k1: 0 < k1 -> k1 < 1 -> bet a (contraction a b k1) b.
Lemma betS_inner_transitivity a b c d (k1 := betR a b d) (k2 := betR b c d) : betS a b d -> betS b c d -> bet a b c.
Lemma bet_inner_transitivity a b c d: bet a b d -> bet b c d -> bet a b c.
Lemma bet_betS a b c : a <> b -> b <> c -> bet a b c = betS a b c.
Lemma inner_pasch' a b c p q (k1 := betR a p c) (k2 := betR b q c) : a <> p -> p <> c -> b <> q -> q <> c -> bet a p c -> bet b q c -> exists x, bet p x b /\ bet q x a.
Lemma inner_pasch a b c p q : bet a p c -> bet b q c -> a <> p -> p <> c -> b <> q -> q <> c -> ~ (bet a b c \/ bet b c a \/ bet c a b) -> exists x, bet p x b /\ bet q x a.
Lemma bet_col a b c: bet a b c -> (bet a b c \/ bet b c a \/ bet c a b).
Lemma bet_colF a b c : bet a b c -> ~ (bet b a c \/ bet a c b \/ bet c b a) -> False.
Lemma euclid' a b c d t (k1 := betR a d t) (k2 := betR b d c) : betS a d t -> bet b d c -> exists x y, bet a b x /\ bet a c y /\ bet x t y.
Lemma euclid a b c d t (k1 := betR a d t) (k2 := betR b d c) : bet a d t -> bet b d c -> b <> d -> d <> c -> ~ (bet a b c \/ bet b c a \/ bet c a b) -> exists x y, bet a b x /\ bet a c y /\ bet x t y.
Lemma congC a b c d: cong a b c d = cong b a d c.
Lemma cong_eq a b c : cong a b c c -> a = b.
Lemma cong_eq' a b c : cong a a b c -> b = c.
Lemma betS_gt0 a b c (r := ratio(b-a)(c-a)) : betS a b c -> 0 < (1 - r) / r.
Lemma bet_cong_ratio_eq a b c a' b' c' (r := betR a b c) (r' := betR a' b' c') : betS a b c -> betS a' b' c' -> cong b a b' a' -> cong b c b' c' -> (1 - r) / r = (1 - r') / r'.
Lemma five_segment a a' b b' c c' d d' : cong a b a' b' -> cong b c b' c' -> cong a d a' d' -> cong b d b' d' -> bet a b c -> bet a' b' c' -> a <> b -> cong c d c' d'.
Lemma point_equality_decidability a b : a = b \/ ~ a = b.
Lemma congP a b c d : reflect (sqr_L2_norm_2D a b = sqr_L2_norm_2D c d) (cong a b c d).
Lemma upper_dim a b c p q : p <> q -> a <> b -> a <> c -> b <> c -> cong a p a q -> cong b p b q -> cong c p c q -> (bet a b c \/ bet b c a \/ bet c a b).