Let alpha be given.
Assume Ha: ordinal alpha.
Let beta be given.
Assume Hb: ordinal beta.
Set Lo1 to be the term {x + beta|xSNoS_ alpha}.
Set Lo2 to be the term {alpha + x|xSNoS_ beta}.
We will prove alpha + beta = SNoCut (Lo1 Lo2) Empty.
We prove the intermediate claim La: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim Lb: SNo beta.
An exact proof term for the current goal is ordinal_SNo beta Hb.
rewrite the current goal using add_SNo_eq alpha La beta Lb (from left to right).
We will prove SNoCut ({x + beta|xSNoL alpha} {alpha + x|xSNoL beta}) ({x + beta|xSNoR alpha} {alpha + x|xSNoR beta}) = SNoCut (Lo1 Lo2) Empty.
rewrite the current goal using ordinal_SNoL alpha Ha (from left to right).
rewrite the current goal using ordinal_SNoL beta Hb (from left to right).
We will prove SNoCut (Lo1 Lo2) ({x + beta|xSNoR alpha} {alpha + x|xSNoR beta}) = SNoCut (Lo1 Lo2) Empty.
rewrite the current goal using ordinal_SNoR alpha Ha (from left to right).
rewrite the current goal using ordinal_SNoR beta Hb (from left to right).
We will prove SNoCut (Lo1 Lo2) ({x + beta|xEmpty} {alpha + x|xEmpty}) = SNoCut (Lo1 Lo2) Empty.
rewrite the current goal using Repl_Empty (from left to right).
rewrite the current goal using Repl_Empty (from left to right).
We will prove SNoCut (Lo1 Lo2) (Empty Empty) = SNoCut (Lo1 Lo2) Empty.
rewrite the current goal using binunion_idl (from left to right).
Use reflexivity.