Let α be given.
Assume Ha: ordinal α.
Let β be given.
Assume Hb: ordinal β.
Set Lo1 to be the term {x + β|xSNoS_ α}.
Set Lo2 to be the term {α + x|xSNoS_ β}.
We will prove α + β = SNoCut (Lo1 Lo2) Empty.
We prove the intermediate claim La: SNo α.
An exact proof term for the current goal is ordinal_SNo α Ha.
We prove the intermediate claim Lb: SNo β.
An exact proof term for the current goal is ordinal_SNo β Hb.
rewrite the current goal using add_SNo_eq α La β Lb (from left to right).
We will prove SNoCut ({x + β|xSNoL α} {α + x|xSNoL β}) ({x + β|xSNoR α} {α + x|xSNoR β}) = SNoCut (Lo1 Lo2) Empty.
rewrite the current goal using ordinal_SNoL α Ha (from left to right).
rewrite the current goal using ordinal_SNoL β Hb (from left to right).
We will prove SNoCut (Lo1 Lo2) ({x + β|xSNoR α} {α + x|xSNoR β}) = SNoCut (Lo1 Lo2) Empty.
rewrite the current goal using ordinal_SNoR α Ha (from left to right).
rewrite the current goal using ordinal_SNoR β Hb (from left to right).
We will prove SNoCut (Lo1 Lo2) ({x + β|xEmpty} {α + 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.