Search for blocks/addresses/...
Proofgold Proof
pf
Let x0 of type
ι
be given.
Let x1 of type
ι
be given.
Let x2 of type
ι
be given.
Let x3 of type
ι
be given.
Assume H0:
SNoCutP
x0
x1
.
Assume H1:
SNoCutP
x2
x3
.
Let x4 of type
ι
be given.
Let x5 of type
ι
be given.
Assume H2:
x4
=
SNoCut
x0
x1
.
Assume H3:
x5
=
SNoCut
x2
x3
.
Apply H0 with
∀ x6 .
x6
∈
SNoL
(
mul_SNo
x4
x5
)
⟶
or
(
∃ x7 .
and
(
x7
∈
x0
)
(
∃ x8 .
and
(
x8
∈
x2
)
(
SNoLe
(
add_SNo
x6
(
mul_SNo
x7
x8
)
)
(
add_SNo
(
mul_SNo
x7
x5
)
(
mul_SNo
x4
x8
)
)
)
)
)
(
∃ x7 .
and
(
x7
∈
x1
)
(
∃ x8 .
and
(
x8
∈
x3
)
(
SNoLe
(
add_SNo
x6
(
mul_SNo
x7
x8
)
)
(
add_SNo
(
mul_SNo
x7
x5
)
(
mul_SNo
x4
x8
)
)
)
)
)
.
Assume H4:
and
(
∀ x6 .
x6
∈
x0
⟶
SNo
x6
)
(
∀ x6 .
x6
∈
x1
⟶
SNo
x6
)
.
Apply H4 with
(
∀ x6 .
x6
∈
x0
⟶
∀ x7 .
x7
∈
x1
⟶
SNoLt
x6
x7
)
⟶
∀ x6 .
x6
∈
SNoL
(
mul_SNo
x4
x5
)
⟶
or
(
∃ x7 .
and
(
x7
∈
x0
)
(
∃ x8 .
and
(
x8
∈
x2
)
(
SNoLe
(
add_SNo
x6
(
mul_SNo
x7
x8
)
)
(
add_SNo
(
mul_SNo
x7
x5
)
(
mul_SNo
x4
x8
)
)
)
)
)
(
∃ x7 .
and
(
x7
∈
x1
)
(
∃ x8 .
and
(
x8
∈
x3
)
(
SNoLe
(
add_SNo
x6
(
mul_SNo
x7
x8
)
)
(
add_SNo
(
mul_SNo
x7
x5
)
(
mul_SNo
x4
x8
)
)
)
)
)
.
Assume H5:
∀ x6 .
x6
∈
x0
⟶
SNo
x6
.
Assume H6:
∀ x6 .
x6
∈
x1
⟶
SNo
x6
.
Assume H7:
∀ x6 .
x6
∈
x0
⟶
∀ x7 .
x7
∈
x1
⟶
SNoLt
x6
x7
.
Apply H1 with
∀ x6 .
x6
∈
SNoL
(
mul_SNo
x4
x5
)
⟶
or
(
∃ x7 .
and
(
x7
∈
x0
)
(
∃ x8 .
and
(
x8
∈
x2
)
(
SNoLe
(
add_SNo
x6
(
mul_SNo
x7
x8
)
)
(
add_SNo
(
mul_SNo
x7
x5
)
(
mul_SNo
x4
x8
)
)
)
)
)
(
∃ x7 .
and
(
x7
∈
x1
)
(
∃ x8 .
and
(
x8
∈
x3
)
(
SNoLe
(
add_SNo
x6
(
mul_SNo
x7
x8
)
)
(
add_SNo
(
mul_SNo
x7
x5
)
(
mul_SNo
x4
x8
)
)
)
)
)
.
Assume H8:
and
(
∀ x6 .
x6
∈
x2
⟶
SNo
x6
)
(
∀ x6 .
x6
∈
x3
⟶
SNo
x6
)
.
Apply H8 with
...
⟶
∀ x6 .
...
⟶
or
(
∃ x7 .
and
(
x7
∈
x0
)
(
∃ x8 .
and
(
x8
∈
x2
)
(
SNoLe
(
add_SNo
x6
(
mul_SNo
x7
x8
)
)
(
add_SNo
(
mul_SNo
...
...
)
...
)
)
)
)
...
.
...
■