code: def verify_leaf_inclusion(self, leaf: bytes, leaf_index: int,
                                proof: List[bytes], sth: STH):
          
          leaf_hash = self.hasher.hash_leaf(leaf)
          return self.verify_leaf_hash_inclusion(leaf_hash, leaf_index, proof,
                                                 sth)
docs: Verify a Merkle Audit Path.
  
          See section 2.1.1 of RFC6962 for the exact path description.
  
          Args:
              leaf: The leaf for which the proof was provided.
              leaf_index: Index of the leaf in the tree.
              proof: A list of SHA-256 hashes representing the  Merkle audit
              path.
              sth: STH with the same tree size as the one used to fetch the
              proof.
              The sha256_root_hash from this STH will be compared against the
              root hash produced from the proof.
  
          Returns:
              True. The return value is enforced by a decorator and need not be
                  checked by the caller.
  
          Raises:
              ProofError: the proof is invalid.