Lean4
/-- The inductively defined smallest additive congruence relation containing a given binary
relation. -/
inductive Rel [Add M] (r : M → M → Prop) : M → M → Prop
| of : ∀ x y, r x y → AddConGen.Rel r x y
| refl : ∀ x, AddConGen.Rel r x x
| symm : ∀ {x y}, AddConGen.Rel r x y → AddConGen.Rel r y x
| trans : ∀ {x y z}, AddConGen.Rel r x y → AddConGen.Rel r y z → AddConGen.Rel r x z
| add : ∀ {w x y z}, AddConGen.Rel r w x → AddConGen.Rel r y z → AddConGen.Rel r (w + y) (x + z)