This paper presents a knowledge-based approach to performing a fault tree analysis of engineering systems. This knowledge-based approach can be used to build a fault tree from a graphical functional block diagram using reduction for replicated events, and to compute minimal cut sets. A methodology in predicate calculus for fault tree synthesis from a functional block diagram is formulated. An implementation of this methodology in a rule-based language is presented. Results are compared with manually prepared reliability reports on an electrical power system and a hydraulic system. The knowledge-based system outperforms the manual procedure in timeliness and accuracy.