fact: Fixpoint break_segments (s : seq (annotated_point * annotated_point)) : seq (annotated_point * annotated_point) := match s with | (Apt p1 a1, Apt p2 a2) :: tl => (Apt p1 a1, Apt (midpoint p1 p2) (intersection a1 a2)) :: (Apt (midpoint p1 p2) (intersection a1 a2), Apt p2 a2) :: break_segments tl | nil => nil end.
imports: mathcomp(all_ssreflect) ZArith QArith List String OrderedType OrderedTypeEx FMapAVL