// 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

Graph