%0:2 = input "a" %2:2 = input "b" %4:2 = match { %2:1 %0+1 } { [00 01] XX } %6:2 = match en=%4+0 { %2+1 %0:1 } { 10 XX } %8:2 = match en=%4+1 { %2+1 %0:1 } { [00 11] 10 } %10:0 = output "x" %6:2 %11:0 = output "y" %8:2 %0:2 = input "a" %2:2 = input "b" %6:1 = eq { %0:2 %2+1 } 001 %7:1 = eq { %0:2 %2+1 } 101 %8:1 = eq %0:2 00 %9:1 = or %8 %7 %10:1 = eq { %0:2 %2+1 } 010 %11:1 = eq { %0:2 %2+1 } 011 %12:1 = eq { %0:2 %2+1 } 111 %13:1 = or %10 %12 %4:0 = output "x" { %6:1 %9:1 } %5:0 = output "y" { %13:1 %11:1 }