pub fn is_valid_nonce(seed: &[u8; 32], nonce: u64, grinding_factor: u8) -> bool {
    let inner_hash = get_inner_hash(seed, grinding_factor);
    let limit = 1 << (64 - grinding_factor);
    is_valid_nonce_for_inner_hash(&inner_hash, nonce, limit)
}
Checks if the bit-string `Hash(Hash(prefix || seed || grinding_factor) || nonce)`
has at least `grinding_factor` zeros to the left.
`prefix` is the bit-string `0x123456789abcded`

# Parameters

* `seed`: the input seed,
* `nonce`: the value to be tested,
* `grinding_factor`: the number of leading zeros needed.

# Returns

`true` if the number of leading zeros is at least `grinding_factor`, and `false` otherwise.
crates/provers/stark/src/grinding.rs