1. A method for network fault diagnosis in a network having a plurality of network elements, comprising steps of: creating a network causality model; generating Boolean expressions from said network causality model; converting said Boolean expressions into SAT sets; receiving network monitoring results; correlating said network monitoring results with said SAT sets; and enumerating all possible diagnostic explanations of potential faults and displaying a ranked fault list having said explanations with annotations on a computer; where the step of creating a network causality model comprising steps of: for each network element of the plurality of network elements, creating an element-specific causality model; stitching together all network elements using the plurality of element-specific causality models and a network topology; retrieving monitoring state and propagation information; and generating the network causality model using the stitched together network elements and the monitoring state and propagation information.