Pātuhitia tēnei: Foundations of bilevel programming