Fuzzy logic is a flexible machine learning technique that mimics human thought by allowing intermediate values between true and false. It provides a mechanism for interpreting and executing commands based on approximate or uncertain reasoning. Unlike binary logic which can only have true or false values, fuzzy logic uses linguistic variables and degrees of membership to represent concepts that may have a partial truth. Fuzzy systems find applications in automatic control, prediction, diagnosis and user interfaces.