Let x and y be given.
Assume Hx Hy Hxnn Hynn.
We prove the intermediate claim LsxS: SNo (sqrt_SNo_nonneg x).
An exact proof term for the current goal is SNo_sqrt_SNo_nonneg x ?? ??.
We prove the intermediate claim Lsxnn: 0sqrt_SNo_nonneg x.
An exact proof term for the current goal is sqrt_SNo_nonneg_nonneg x ?? ??.
We prove the intermediate claim LsyS: SNo (sqrt_SNo_nonneg y).
An exact proof term for the current goal is SNo_sqrt_SNo_nonneg y ?? ??.
We prove the intermediate claim Lsynn: 0sqrt_SNo_nonneg y.
An exact proof term for the current goal is sqrt_SNo_nonneg_nonneg y ?? ??.
We prove the intermediate claim LsxsyS: SNo (sqrt_SNo_nonneg x * sqrt_SNo_nonneg y).
Apply SNo_mul_SNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L1: (sqrt_SNo_nonneg x * sqrt_SNo_nonneg y) ^ 2 = x * y.
rewrite the current goal using exp_SNo_nat_2 (sqrt_SNo_nonneg x * sqrt_SNo_nonneg y) ?? (from left to right).
We will prove (sqrt_SNo_nonneg x * sqrt_SNo_nonneg y) * (sqrt_SNo_nonneg x * sqrt_SNo_nonneg y) = x * y.
rewrite the current goal using mul_SNo_com_4_inner_mid (sqrt_SNo_nonneg x) (sqrt_SNo_nonneg y) (sqrt_SNo_nonneg x) (sqrt_SNo_nonneg y) ?? ?? ?? ?? (from left to right).
Use f_equal.
An exact proof term for the current goal is sqrt_SNo_nonneg_sqr x ?? ??.
An exact proof term for the current goal is sqrt_SNo_nonneg_sqr y ?? ??.
rewrite the current goal using L1 (from right to left).
Apply sqrt_SNo_nonneg_sqr_id to the current goal.
We will prove SNo (sqrt_SNo_nonneg x * sqrt_SNo_nonneg y).
An exact proof term for the current goal is LsxsyS.
We will prove 0sqrt_SNo_nonneg x * sqrt_SNo_nonneg y.
Apply mul_SNo_nonneg_nonneg to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.