! [A,B,C] : (point(A) & point(B) & point(C) & B!=C & A!=B & A!=C)
? [D] : (point(D) & D!=A & D!=B & cong(A,B,B,D) & cong(B,D,D,A))
? [M] : (line(M) & on(D,M) & on(A,M))
? [N] : (line(N) & on(D,N) & on(B,N))
? [K1] : (circle(K1) & center(B,K1) & onc(C,K1))
? [G] : (point(G) & on(G,N) & onc(G,K1) & bet(D,B,G))
(segment_add(D,B,B,G,D,G))
(segment_add(D,G,D,A,B,G))
(cong_less(D,A,D,G))
? [K2] : (circle(K2) & center(D,K2) & onc(G,K2))
(inside(A,K2))
? [F] : (point(F) & onc(F,K2) & on(F,M) & bet(D,A,F))
(segment_add(D,A,A,F,D,F))
(cong(D,F,D,G))
(segment_add(D,A,B,G,D,F))
(cong(A,F,B,G))
(cong(B,G,B,C))
(cong(A,F,B,C))
