Design a function to check if a binary tree is a Binary Search Tree (BST).
Represent each tree as [value, left_subtree, right_subtree], where an empty subtree is None. Return True only when every left descendant is strictly smaller than its node and every right descendant is strictly larger. Implement is_bst(root) and return a boolean.
def is_bst(root):