from contiguous import *

## left_child(tree, pos) produces the position of the left child of the
##     node in position pos when tree is interpreted as an array
##     representation of a tree, and False if the node in position pos
##     has no left child.
## left_child: Contiguous Int -> (anyof Int False)
## Requires: 0 <= pos < size(tree)
def left_child(tree, pos):

## right_child(tree, pos) produces the position of the right child of the
##     node in position pos when tree is interpreted as an array
##     representation of a tree, and False if the node in position pos
##     has no right child.
## right_child: Contiguous Int -> (anyof Int False)
## Requires: 0 <= pos < size(tree)
def right_child(tree, pos):

## is_leaf(tree, pos) returns True if the node in position pos is a leaf
##     in tree, where tree is interpreted as an array representation of
##     a complete binary tree, and False otherwise.
## is_leaf: Contiguous Int -> Bool
## Requires: 0 <= pos < size(tree)
def is_leaf(tree, pos):


## local_order(tree, pos) produces True if tree is an array representation of
##     a tree such that the value stored at pos satisfies the heap-order
##     property with respect to the values stored at its children (if any)
##     and False otherwise.
## local_order: Contiguous Int -> Bool
## Requires: 0 <= pos < size(tree)
##           tree has distinct numbers in each slot
def local_order(tree, pos):

    

