There has been considerable work on practical reasoning in artificial intelligence and also in philosophy. Typically, such reasoning includes premises regarding means–end relations. A clear semantics for such relations is needed in order to evaluate proposed syllogisms. In this paper, we provide a formal semantics for means–end relations, in particular for necessary and sufficient means–end relations. Our semantics includes a non-monotonic conditional operator, so that related practical reasoning is naturally defeasible. This work is primarily an exercise in conceptual analysis, aimed at clarifying and eventually evaluating existing theories of practical reasoning (pending a similar analysis regarding desires, intentions and other relevant concepts).