edge reasoning