Let x and y be given.
Assume Hx Hy.
Let p be given.
Assume Hp.
We will prove p.
Set Lxy1 to be the term
{(w 0) * y + x * (w 1) + - (w 0) * (w 1)|w ∈ SNoL x ⨯ SNoL y}.
Set Lxy2 to be the term
{(z 0) * y + x * (z 1) + - (z 0) * (z 1)|z ∈ SNoR x ⨯ SNoR y}.
Set Rxy1 to be the term
{(w 0) * y + x * (w 1) + - (w 0) * (w 1)|w ∈ SNoL x ⨯ SNoR y}.
Set Rxy2 to be the term
{(z 0) * y + x * (z 1) + - (z 0) * (z 1)|z ∈ SNoR x ⨯ SNoL y}.
Apply Hp (Lxy1 ∪ Lxy2) (Rxy1 ∪ Rxy2) to the current goal.
Let u be given.
Assume Hu.
Let q be given.
Assume Hq1 Hq2.
Apply binunionE Lxy1 Lxy2 u Hu to the current goal.
Apply ReplE_impred (SNoL x ⨯ SNoL y) (λw ⇒ (w 0) * y + x * (w 1) + - (w 0) * (w 1)) u Hu1 to the current goal.
Let w be given.
An exact proof term for the current goal is Hq1 (w 0) (ap0_Sigma (SNoL x) (λ_ ⇒ SNoL y) w Hw) (w 1) (ap1_Sigma (SNoL x) (λ_ ⇒ SNoL y) w Hw) Hw2.
Apply ReplE_impred (SNoR x ⨯ SNoR y) (λz ⇒ (z 0) * y + x * (z 1) + - (z 0) * (z 1)) u Hu2 to the current goal.
Let z be given.
An exact proof term for the current goal is Hq2 (z 0) (ap0_Sigma (SNoR x) (λ_ ⇒ SNoR y) z Hz) (z 1) (ap1_Sigma (SNoR x) (λ_ ⇒ SNoR y) z Hz) Hz2.
Let w0 be given.
Let w1 be given.
We will
prove w0 * y + x * w1 + - w0 * w1 ∈ Lxy1 ∪ Lxy2.
Apply binunionI1 to the current goal.
We will
prove w0 * y + x * w1 + - w0 * w1 ∈ Lxy1.
Apply tuple_2_0_eq w0 w1 (λu v ⇒ u * y + x * w1 + - u * w1 ∈ Lxy1) to the current goal.
We will
prove (w0,w1) 0 * y + x * w1 + - (w0,w1) 0 * w1 ∈ Lxy1.
Apply tuple_2_1_eq w0 w1 (λu v ⇒ (w0,w1) 0 * y + x * u + - (w0,w1) 0 * u ∈ Lxy1) to the current goal.
We will
prove (w0,w1) 0 * y + x * (w0,w1) 1 + - (w0,w1) 0 * (w0,w1) 1 ∈ Lxy1.
Apply ReplI (SNoL x ⨯ SNoL y) (λw ⇒ (w 0) * y + x * (w 1) + - (w 0) * (w 1)) (w0,w1) to the current goal.
We will
prove (w0,w1) ∈ SNoL x ⨯ SNoL y.
Apply tuple_2_setprod to the current goal.
An exact proof term for the current goal is Hw0.
An exact proof term for the current goal is Hw1.
Let z0 be given.
Let z1 be given.
We will
prove z0 * y + x * z1 + - z0 * z1 ∈ Lxy1 ∪ Lxy2.
Apply binunionI2 to the current goal.
We will
prove z0 * y + x * z1 + - z0 * z1 ∈ Lxy2.
Apply tuple_2_0_eq z0 z1 (λu v ⇒ u * y + x * z1 + - u * z1 ∈ Lxy2) to the current goal.
We will
prove (z0,z1) 0 * y + x * z1 + - (z0,z1) 0 * z1 ∈ Lxy2.
Apply tuple_2_1_eq z0 z1 (λu v ⇒ (z0,z1) 0 * y + x * u + - (z0,z1) 0 * u ∈ Lxy2) to the current goal.
We will
prove (z0,z1) 0 * y + x * (z0,z1) 1 + - (z0,z1) 0 * (z0,z1) 1 ∈ Lxy2.
Apply ReplI (SNoR x ⨯ SNoR y) (λz ⇒ (z 0) * y + x * (z 1) + - (z 0) * (z 1)) (z0,z1) to the current goal.
We will
prove (z0,z1) ∈ SNoR x ⨯ SNoR y.
Apply tuple_2_setprod to the current goal.
An exact proof term for the current goal is Hz0.
An exact proof term for the current goal is Hz1.
Let u be given.
Assume Hu.
Let q be given.
Assume Hq1 Hq2.
Apply binunionE Rxy1 Rxy2 u Hu to the current goal.
Apply ReplE_impred (SNoL x ⨯ SNoR y) (λw ⇒ (w 0) * y + x * (w 1) + - (w 0) * (w 1)) u Hu1 to the current goal.
Let w be given.
An exact proof term for the current goal is Hq1 (w 0) (ap0_Sigma (SNoL x) (λ_ ⇒ SNoR y) w Hw) (w 1) (ap1_Sigma (SNoL x) (λ_ ⇒ SNoR y) w Hw) Hw2.
Apply ReplE_impred (SNoR x ⨯ SNoL y) (λz ⇒ (z 0) * y + x * (z 1) + - (z 0) * (z 1)) u Hu2 to the current goal.
Let z be given.
An exact proof term for the current goal is Hq2 (z 0) (ap0_Sigma (SNoR x) (λ_ ⇒ SNoL y) z Hz) (z 1) (ap1_Sigma (SNoR x) (λ_ ⇒ SNoL y) z Hz) Hz2.
Let w0 be given.
Let z1 be given.
We will
prove w0 * y + x * z1 + - w0 * z1 ∈ Rxy1 ∪ Rxy2.
Apply binunionI1 to the current goal.
We will
prove w0 * y + x * z1 + - w0 * z1 ∈ Rxy1.
Apply tuple_2_0_eq w0 z1 (λu v ⇒ u * y + x * z1 + - u * z1 ∈ Rxy1) to the current goal.
We will
prove (w0,z1) 0 * y + x * z1 + - (w0,z1) 0 * z1 ∈ Rxy1.
Apply tuple_2_1_eq w0 z1 (λu v ⇒ (w0,z1) 0 * y + x * u + - (w0,z1) 0 * u ∈ Rxy1) to the current goal.
We will
prove (w0,z1) 0 * y + x * (w0,z1) 1 + - (w0,z1) 0 * (w0,z1) 1 ∈ Rxy1.
Apply ReplI (SNoL x ⨯ SNoR y) (λw ⇒ (w 0) * y + x * (w 1) + - (w 0) * (w 1)) (w0,z1) to the current goal.
We will
prove (w0,z1) ∈ SNoL x ⨯ SNoR y.
Apply tuple_2_setprod to the current goal.
An exact proof term for the current goal is Hw0.
An exact proof term for the current goal is Hz1.
Let z0 be given.
Let w1 be given.
We will
prove z0 * y + x * w1 + - z0 * w1 ∈ Rxy1 ∪ Rxy2.
Apply binunionI2 to the current goal.
We will
prove z0 * y + x * w1 + - z0 * w1 ∈ Rxy2.
Apply tuple_2_0_eq z0 w1 (λu v ⇒ u * y + x * w1 + - u * w1 ∈ Rxy2) to the current goal.
We will
prove (z0,w1) 0 * y + x * w1 + - (z0,w1) 0 * w1 ∈ Rxy2.
Apply tuple_2_1_eq z0 w1 (λu v ⇒ (z0,w1) 0 * y + x * u + - (z0,w1) 0 * u ∈ Rxy2) to the current goal.
We will
prove (z0,w1) 0 * y + x * (z0,w1) 1 + - (z0,w1) 0 * (z0,w1) 1 ∈ Rxy2.
Apply ReplI (SNoR x ⨯ SNoL y) (λw ⇒ (w 0) * y + x * (w 1) + - (w 0) * (w 1)) (z0,w1) to the current goal.
We will
prove (z0,w1) ∈ SNoR x ⨯ SNoL y.
Apply tuple_2_setprod to the current goal.
An exact proof term for the current goal is Hz0.
An exact proof term for the current goal is Hw1.
An
exact proof term for the current goal is
mul_SNo_eq x Hx y Hy.
∎