Upper Bounds, Secondary Constraints, and Block Triangularity in Linear Programming | Synapse