# Armstrong's Axioms

Armstrong's axioms are a set of logical inference rules used in database management systems to deduce functional dependencies between attributes. These axioms are essential for determining the closure of a set of attributes and are a fundamental part of database normalization and query optimization. There are three primary Armstrong axioms:

1.  **Reflexivity Axiom (Reflexivity Rule):**

    If α is a set of attributes and β is a subset of α, then α → β is a valid functional dependency. This axiom represents that if you know that a set of attributes α functionally determines a subset β of those attributes, then it's also valid to say that α functionally determines itself.

    Example: If A → B is known to be true, then A → A is also true.
2.  **Augmentation Axiom (Augmentation Rule):**

    If α → β is a valid functional dependency, then for any set of attributes γ, αγ → βγ is also a valid functional dependency. This axiom implies that if a set of attributes α functionally determines a set of attributes β, then adding the same set of attributes to both sides of the functional dependency preserves its validity.

    Example: If A → B is known to be true, then AC → BC is also true.
3.  **Transitivity Axiom (Transitivity Rule):**

    If α → β and β → γ are both valid functional dependencies, then α → γ is also a valid functional dependency. This axiom reflects that if a set of attributes α functionally determines another set β, and β functionally determines γ, then α must also functionally determine γ.

    Example: If A → B and B → C are known to be true, then A → C is also true.

Using Armstrong's axioms, you can systematically deduce additional functional dependencies from the ones you already know. This is particularly useful in the process of database normalization, where you aim to reduce redundancy and ensure data integrity by identifying all functional dependencies and decomposing relations into smaller, well-structured tables.
