Lean4
/-- The join of two degrees, induced by the disjoint union of two underlying sets. -/
instance instAdd : Add ManyOneDegree :=
⟨fun d₁ d₂ =>
d₁.liftOn₂ d₂ (fun a b => of (a ⊕' b))
(by
rintro a b c d ⟨hl₁, hr₁⟩ ⟨hl₂, hr₂⟩
rw [of_eq_of]
exact
⟨disjoin_manyOneReducible (hl₁.trans OneOneReducible.disjoin_left.to_many_one)
(hl₂.trans OneOneReducible.disjoin_right.to_many_one),
disjoin_manyOneReducible (hr₁.trans OneOneReducible.disjoin_left.to_many_one)
(hr₂.trans OneOneReducible.disjoin_right.to_many_one)⟩)⟩