Search for blocks/addresses/...

Proofgold Proof

pf
Claim L0: ...
...
Let x0 of type ι be given.
Let x1 of type ιιι be given.
Let x2 of type ι be given.
Let x3 of type ιιι be given.
set y4 to be ...
Claim L1: ∀ x5 : ι → ο . x5 y4x5 (unpack_b_i (pack_b x0 x1) ((λ x6 . λ x7 : ι → ι → ι . λ x8 . λ x9 : ι → ι → ι . unpack_b_i (pack_b x6 x7) ((λ x10 . λ x11 : ι → ι → ι . λ x12 . λ x13 : ι → ι → ι . pack_b (setprod x10 x12) (λ x14 x15 . lam 2 (λ x16 . If_i (x16 = 0) (x11 (ap x14 0) (ap x15 0)) (x13 (ap x14 1) (ap x15 1))))) x8 x9)) x2 x3))
Let x5 of type ιο be given.
Assume H1: x5 ((λ x6 . λ x7 : ι → ι → ι . λ x8 . λ x9 : ι → ι → ι . pack_b (setprod x6 x8) (λ x10 x11 . lam 2 (λ x12 . If_i (x12 = 0) (x7 (ap x10 0) (ap x11 0)) (x9 (ap x10 1) (ap x11 1))))) x1 x2 x3 y4).
Apply unpack_b_i_eq with (λ x6 . λ x7 : ι → ι → ι . λ x8 . λ x9 : ι → ι → ι . unpack_b_i (pack_b x6 x7) ((λ x10 . λ x11 : ι → ι → ι . λ x12 . λ x13 : ι → ι → ι . pack_b (setprod x10 x12) (λ x14 x15 . lam 2 (λ x16 . If_i (x16 = 0) (x11 (ap x14 0) (ap x15 0)) (x13 (ap x14 1) (ap x15 1))))) x8 x9)) x3 y4, x1, x2, λ x6 . x5 leaving 2 subgoals.
Let x6 of type ιιι be given.
Assume H2: ∀ x7 . x7x1∀ x8 . x8x1x2 x7 x8 = x6 x7 x8.
Apply L0 with x1, x6, x3, y4, λ x7 x8 . x8 = unpack_b_i (pack_b x3 y4) ((λ x9 . λ x10 : ι → ι → ι . λ x11 . λ x12 : ι → ι → ι . pack_b (setprod x9 x11) (λ x13 x14 . lam 2 (λ x15 . If_i (x15 = 0) (x10 (ap x13 0) (ap x14 0)) (x12 (ap x13 1) (ap x14 1))))) x1 x2).
Apply L0 with x1, x2, x3, y4, λ x7 x8 . (λ x9 . λ x10 : ι → ι → ι . λ x11 . λ x12 : ι → ι → ι . pack_b (setprod x9 x11) (λ x13 x14 . lam 2 (λ x15 . If_i (x15 = 0) (x10 (ap x13 0) (ap x14 0)) (x12 (ap x13 1) (ap x14 1))))) x1 x6 x3 y4 = x8.
Apply pack_b_ext with setprod x1 x3, λ x7 x8 . lam 2 (λ x9 . If_i (x9 = 0) (x6 (ap x7 0) ...) ...), ....
...
...
Let x5 of type ιιο be given.
Apply L1 with λ x6 . x5 x6 y4x5 y4 x6.
Assume H2: x5 y4 y4.
The subproof is completed by applying H2.