Proving two lines are parallel While playing around with Geogebra, I come up with the following statement. Is this a known property? Any reference or proof?

Let $ABC$ be a triangle with a point $D$ along the side $CB$ and a point $E$ along the side $AC$. Let $H_1$  be the orthocenter of $\triangle ABC$ and let $H_2$  be the orthocenter of $\triangle EDC$. Let $O_1$ be the intersection of the perpendicular bisectors of $AB$ and $ED$, and let $O_2$ be the intersection of the perpendicular bisectors of $BD$ and $EA$. Show that the lines $H_1 H_2$ and $O_1O_2$ are parallel.
  

 A: 
$\require{begingroup} \begingroup\def\conj#1{\overline{#1}}$
Using the complex number representation of all the points,
condition $H_1H_2\parallel O_1O_2$
means
\begin{align}
O_2-O_1&=k\,(H_1-H_2),\quad k\in\mathbb R
\tag{1}\label{1}
.
\end{align}
Without loss of generality, using
\begin{align}
B&=(0,0),\quad C=(1,0),\quad A=(u,v),\quad D=(d,0)
,\\
E&=A(1-t)+Ct=(u(1-t),\, v(1-t))
,\\
&u,v\in\mathbb{R},\quad d,t\in(0,1)
\end{align}
and evaluating
the intersection point $z$
of the lines through points $z_1,z_2$
and $z_3,z_4$ as
\begin{align}
z(z_1,z_2,z_3,z_4)&=
\frac{
 (z_1-z_2)\,(\conj{z_3}\,z_4-\conj{z_4}\,z_3)
-
 (z_3-z_4)\,(\conj{z_1}\,z_2-\conj{z_2}\,z_1)
}
{ 
 (z_1-z_2)\,(\conj{z_3}-\conj{z_4})
-
 (z_3-z_4)\,(\conj{z_1}-\conj{z_2})
}
.
\end{align}
We can find $k$ in \eqref{1} explicitly.
\begin{align} 
H_1 &= (u,\tfrac uv\,(1-u))
,\\
H_2&=
\left(u(1-t)+t,\ \frac1v\,(u-1)(d-t-u(1-t))\right)
\end{align} 
\begin{align} 
O_1&=\left(
\frac{((u-1)^2+v^2)t^2+(1-v^2-(u-1)^2)t-d^2}{2(t-d)}
\right.
,
\\
&\qquad\left.
\frac{-u((u-1)^2+v^2)t^2+(u^2(u-1)+v^2(u+1))t-d(u^2-ud+v^2)}
{2v(t-d)}
\right)
,\\
O_2&=\left(\tfrac12\,d,\,
v+\tfrac 1v\,(\tfrac12\,(d(1-u)
-t((1-u)^2+v^2))-u(1-u))
\right)
\end{align}
The value of $k$ is indeed real:
\begin{align}
k&=\frac{O_2-O_1}{H_1-H_2}
=
\frac{d-1+(1-t)(v^2+(1-u)^2)}{2(d-t)(1-u)}
,
\end{align} 
hence $H_1H_2\parallel O_1O_2$.
$\endgroup$

Edit
Corresponding Maxima session:
Maxima 5.38.1 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.12
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) _(z):=conjugate(z)$
(%i2) xpoint(z1,z2,z3,z4):=
              ((z1-z2)*(_(z3)*z4-_(z4)*z3)-(z3-z4)*(_(z1)*z2-_(z2)*z1))
              /((z1-z2)*(_(z3)-_(z4))-(z3-z4)*(_(z1)-_(z2)))$
( %i3) declare([A,B,C,D,E,H1,H2,O1,O2],complex)$
( %i4) declare([u,v,d,t,rez],real)$
( %i5) B:0$
( %i6) C:1$
( %i7) A:u+v*%i$
( %i8) D:d$
( %i9) E:factor(A*(1-t)+C*t)$
(%i10) H1:xpoint(A,A+(B-C)*%i,B,B+(A-C)*%i)$
(%i11) H2:xpoint(E,E+(D-C)*%i,D,D+(E-C)*%i)$
(%i12) O1:factor(xpoint((A+B)/2,(A+B)/2+(A-B)*%i,(E+D)/2,(E+D)/2+(E-D)*%i))$
(%i13) O2:factor(xpoint((D+B)/2,(D+B)/2+(D-B)*%i,(E+A)/2,(E+A)/2+(E-A)*%i))$
(%i14) rez:(O2-O1)/(H2-H1)$
(%i15) factor(imagpart(rez));
(%o15)                             0
(%i16) factor(realpart(rez));
                 2    2      2    2
              t v  - v  + t u  - u  - 2 t u + 2 u + t - d
(%o16)        -------------------------------------------
                           2 (t - d) (u - 1)

A: Here's a start that's too long for a comment.
You don't need  those particular points $O1$ and $O2$ to determine the  line joining them, and hence its direction. You can find an $O1$ by looking at the intersection of perpendiculars from $AC$ and $BC$ whose feet divide those segments in the same proportion. Using the perpendicular bisector happens to be the proportion $1:1$. Find an $O2$ the same way.
Something similar seems to be true for $H1$ and $H2$.
