Suppose you tag a post with miniskirt. Miniskirts are simply a type of skirt, so ideally, you would like people who search for skirt to see your miniskirt post. You could tag your post with both skirt and miniskirt, but this starts to get tedious after awhile.
Tag implications can be used to describe is-a relationships. A miniskirt is a type of skirt. When a miniskirt → skirt implication is created, then whenever someone tags a post with miniskirt, Danbooru will also tag it with skirt. The tag is normalized before it is saved to the database.
Tag implications have a predicate and a consequent. The predicate is what is matched against. In the previous example, it would be miniskirt. The consequent is the tag that is added. In the example, it would be skirt.
You can have multiple implications for the same predicate. Danbooru will just add all the matching consequent tags. For example, if we created a miniskirt → female_clothes implication, then anytime someone tagged a post with miniskirt it would be expanded to miniskirt skirt female_clothes.
Implications can also be chained together. Instead of miniskirt → female_clothes we could create a skirt → female_clothes implication. The end result would be the same.
This implication process occurs AFTER the alias process.
It's easy to go overboard with implications. It's important not to create implications for frivolous things; for example, we could theoretically implicate everything to an object tag, but this is pointless and only adds bloat to the database. For cases where the predicate and the consequent are synonymous, aliases are a much better idea as they have lower overhead.
While you can suggest new implications, only an administrator can approve them.