An ASM rule is the building block of an ASM program. It can be defined either user-defined or built-in (nested) as a part of another ASM rule.