Target program decision tree Switch ({ var=AcAdd(-2 AcRoot=param/82); dom=Int [-inf; -1] [3; +inf] v Tag _; }) = Leaf=VConstant:5 Switch ({ var=AcAdd(-2 AcRoot=param/82); dom=Int [0; 2]; }) = Switch ({ var=AcAdd(-2 AcRoot=param/82); dom=Int 0; }) = Leaf=VConstant:2 Switch ({ var=AcAdd(-2 AcRoot=param/82); dom=Int 1; }) = Leaf=VConstant:3 Switch ({ var=AcAdd(-2 AcRoot=param/82); dom=Int 2; }) = Leaf=VConstant:4 Fallback=None Fallback=None Source program decision tree Switch AcRoot:{ Int 3 -> Leaf='Int 3 ' Int 4 -> Leaf='Int 4 ' Int 2 -> Leaf='Int 2 ' } Fallback: Leaf='Int 5 ' The two programs are equivalent.