Search for blocks/addresses/...

Proofgold Proof

pf
Let x0 of type ι be given.
Assume H0: struct_u_u_r_e x0.
Apply H0 with λ x1 . x1 = pack_u_u_r_e (ap x1 0) (ap (ap x1 1)) (ap (ap x1 2)) (decode_r (ap x1 3)) (ap x1 4).
Let x1 of type ι be given.
Let x2 of type ιι be given.
Assume H1: ∀ x3 . x3x1x2 x3x1.
Let x3 of type ιι be given.
Assume H2: ∀ x4 . x4x1x3 x4x1.
Let x4 of type ιιο be given.
Let x5 of type ι be given.
Assume H3: x5x1.
Apply pack_u_u_r_e_0_eq2 with x1, x2, x3, x4, x5, λ x6 x7 . pack_u_u_r_e x1 x2 x3 x4 x5 = pack_u_u_r_e x6 (ap (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 1)) (ap (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 2)) (decode_r (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 3)) (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 4).
Apply pack_u_u_r_e_4_eq2 with x1, x2, x3, x4, x5, λ x6 x7 . pack_u_u_r_e x1 x2 x3 x4 x5 = pack_u_u_r_e x1 (ap (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 1)) (ap (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 2)) (decode_r (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 3)) x6.
Apply pack_u_u_r_e_ext with x1, x2, ap (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 1), x3, ap (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 2), x4, decode_r (ap (pack_u_u_r_e x1 x2 x3 x4 x5) 3), x5 leaving 3 subgoals.
The subproof is completed by applying pack_u_u_r_e_1_eq2 with x1, x2, x3, x4, x5.
The subproof is completed by applying pack_u_u_r_e_2_eq2 with x1, x2, x3, x4, x5.
Let x6 of type ι be given.
Assume H4: x6x1.
Let x7 of type ι be given.
Assume H5: x7x1.
Apply pack_u_u_r_e_3_eq2 with x1, x2, x3, x4, x5, x6, x7, λ x8 x9 : ο . iff (x4 x6 x7) x8 leaving 3 subgoals.
The subproof is completed by applying H4.
The subproof is completed by applying H5.
The subproof is completed by applying iff_refl with x4 x6 x7.