I think the easiest way to think about a hard fork is thinking of a mathematical set with elements in it. The elements inside of this set represent consensus rules for the blockchain network. Whenever an element is removed from this mathematical set, it is a hard fork.