# Five Circles
Let(P0=[0,0], P1=[u1,0], P2=[u2,u3], P3=[u4,u5], P4=[u6,u7],
    Q0=[x1,x2], Q1=[x3,x4], Q2=[x5,x6], Q3=[x7,x8], Q4=[x9,x10],
    O0=[z1,z2], O1=[z3,z4], O2=[z5,z6], O3=[z7,z8], O4=[z9,z10],
    M0=[y1,y2], M1=[y3,y4], M2=[y5,y6], M3=[y7,y8], M4=[y9,y10],
    O=[y11,y12],M=[y13,y14]):
FiveCircle := Theorem(
    [arbitrary(P0,P1,P2,P3,P4), intersection(P0,P4,P1,P2,Q0),
     intersection(P1,P0,P2,P3,Q1), intersection(P2,P1,P3,P4,Q2),
     intersection(P3,P2,P4,P0,Q3), intersection(P4,P3,P0,P1,Q4),
     circumcenter(P0,P1,Q0,O0), circumcenter(P1,P2,Q1,O1),
     circumcenter(P2,P3,Q2,O2), circumcenter(P3,P4,Q3,O3),
     circumcenter(P4,P0,Q4,O4), reflection(O0,O1,P0,M0),
     reflection(O1,O2,P1,M1), reflection(O2,O3,P2,M2),
     reflection(O3,O4,P3,M3), reflection(O4,O0,P4,M4),
     circumcenter(M0,M1,M2,O), midpoint(M2,M3,M)], collinear(O,M,O2),
    [x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, z1, z2, z3, z4, z5, z6, 
     z7, z8, z9, z10, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, 
     y12, y13, y14] );
