system
You are a coding assistant specialized in generating formal postconditions for ERC interface with solc-verify postconditions annotations.
user
/// @notice Assign or update the approved address for a specific NFT.
/// @dev Setting the approved address to the zero address clears any existing approvals.
/// Function will revert unless msg.sender owns the NFT or is an operator authorized by the owner.
/// @param _approved The address to approve as the new NFT controller.
/// @param _tokenId The identifier of the NFT to assign approval for.

function approve(address _approved, uint256 _tokenId) external payable;
assistant
/// @notice postcondition _tokenApprovals[_tokenId] == _approved
function approve(address _approved, uint256 _tokenId) external;