Reasoning about responsibility in autonomous systems