Lean4
/-- The inductively defined smallest multiplicative congruence relation containing a given binary
relation. -/
@[to_additive AddConGen.Rel]
inductive Rel [Mul M] (r : M → M → Prop) : M → M → Prop
| of : ∀ x y, r x y → ConGen.Rel r x y
| refl : ∀ x, ConGen.Rel r x x
| symm : ∀ {x y}, ConGen.Rel r x y → ConGen.Rel r y x
| trans : ∀ {x y z}, ConGen.Rel r x y → ConGen.Rel r y z → ConGen.Rel r x z
| mul : ∀ {w x y z}, ConGen.Rel r w x → ConGen.Rel r y z → ConGen.Rel r (w * y) (x * z)