▁Get node ▁( top , ▁P 0 , ▁P 1 ) ▁{ ▁▁▁▁ ▁if ▁( P 1 ▁== ▁ ø ) ▁return ▁P 0 ; ▁/* ▁node ▁elim ination ▁*/ ▁▁▁▁ ▁P ▁= ▁search ▁a ▁node ▁with ▁( top , ▁P 0 , ▁P 1 ▁) ▁in ▁un i q - table ; ▁if ▁( P ▁exist ) ▁return ▁P ; ▁/* ▁node ▁sharing ▁*/ ▁▁▁▁ ▁P ▁= ▁generate ▁a ▁node ▁with ▁( top , ▁P 0 , ▁P 1 ▁); ▁▁▁▁ ▁append ▁P ▁to ▁the ▁un i q - table ; ▁▁▁▁ ▁return ▁P ; ▁▁▁ ▁} ▁ ▁Using ▁Get node (), ▁we ▁can ▁then ▁represent ▁other ▁basic ▁operations ▁as ▁follows : ▁▁▁ ▁Sub set 1 ▁( P , ▁var ) ▁{ ▁▁▁▁ ▁if ▁( P . top ▁< ▁var ) ▁return ▁ ø ; ▁▁▁▁▁ ▁if ▁( P . top ▁== ▁var ) ▁return ▁P 1 ; ▁▁▁▁▁ ▁if ▁( P . top ▁> ▁var ) ▁▁▁▁▁▁ ▁return ▁Get node ▁( P . top , ▁Sub set 1 ( P 0 , ▁var ), ▁Sub set 1 ( P 1 , ▁var )); ▁▁ ▁} ▁▁▁▁ ▁Sub set 0 ▁( P , ▁var ) ▁{ ▁▁▁▁ ▁if ▁( P . top ▁< ▁var ) ▁return ▁ ø ; ▁▁▁▁▁ ▁if ▁( P . top ▁== ▁var ) ▁return ▁P 0 ; ▁▁▁▁▁ ▁if ▁( P . top ▁> ▁var ) ▁▁▁▁▁▁ ▁return ▁Get node ▁( P . top , ▁Sub set 0 ( P 0 , ▁var ), ▁Sub set 0