// Low-level dot products and claim helpers; this is not a recursive proof verifier.
__xfe_inner_product:
push 0
push 0
push 0
swap 3
swap 5
swap 3
swap 2
swap 4
swap 2
swap 1
swap 3
swap 1
swap 2
call __xfe_ip_loop
swap 4
swap 5
swap 4
swap 3
swap 4
swap 3
swap 2
swap 3
swap 2
swap 1
swap 2
swap 1
swap 1
pop 1
return
__xfe_ip_loop:
dup 5
push 0
eq
skiz
return
swap 5
push -1
add
swap 5
swap 2
swap 4
swap 2
xx_dot_step
swap 2
swap 4
swap 2
recurse
__xb_inner_product:
push 0
push 0
push 0
swap 3
swap 5
swap 3
swap 2
swap 4
swap 2
swap 1
swap 3
swap 1
swap 2
call __xb_ip_loop
swap 4
swap 5
swap 4
swap 3
swap 4
swap 3
swap 2
swap 3
swap 2
swap 1
swap 2
swap 1
swap 1
pop 1
return
__xb_ip_loop:
dup 5
push 0
eq
skiz
return
swap 5
push -1
add
swap 5
swap 2
swap 4
swap 2
xb_dot_step
swap 2
swap 4
swap 2
recurse
// read_claim() -> (Digest, Field, Field)
// 4 instructions
__read_claim:
read_io 5
read_io 1
read_io 1
return
// verify_commitment(expected: Digest)
// 3 instructions
__verify_commitment:
divine 5
assert_vector
pop 5
return