PROC Seg(a, b) IS PS.MoveTo(a); PS.LineTo(b); PS.Stroke() END; UI PointTool(Seg); PRED OnBoth(p, a, b, c, d) IS (p, a) PARA (p, b) AND (p, c) PARA (p, d) END; UI PointTool(OnBoth); PROC Cmd0() IS IF VAR a ~ (96.03, 445.9), b ~ (173.7, 486.6), c ~ (232.4, 517.2), d ~ (135.6, 306.6), e ~ (245.6, 324.9), f ~ (300.5, 334), g ~ (154.9, 397.8), h ~ (178.8, 400.6), i ~ (240, 406.9) IN OnBoth(g, a, e, b, d) AND OnBoth(h, a, f, c, d) AND OnBoth(i, c, e, b, f) AND (a, b) PARA (a, c) AND (d, e) PARA (d, f) AND (g, h) PARA (g, i) -> Seg(a, e); Seg(a, f); Seg(b, d); Seg(b, f); Seg(c, e); Seg(c, d) END FI END;