UniTO/tesi/traces/example3.trace
Francesco Mecca dea5a6fbe4 traces
2020-06-30 19:31:56 +02:00

46 lines
No EOL
1.2 KiB
Text

Target program decision tree
Switch ({ var=AcRoot=t/86; dom=Int 0; }) =
Leaf=VConstant:3
Switch ({ var=AcRoot=t/86; dom=Tag 0; }) =
Switch ({ var=AcField(0 AcRoot=t/86); dom=Int [-inf; 0] [2; +inf] v Tag _; }) =
Switch ({ var=AcField(0 AcRoot=t/86); dom=Int [-inf; 1] [3; +inf] v Tag _; }) =
Leaf=VConstant:1, VConstant:0
Switch ({ var=AcField(0 AcRoot=t/86); dom=Int 2; }) =
Leaf=VConstant:1, VConstant:2
Fallback=None
Switch ({ var=AcField(0 AcRoot=t/86); dom=Int 1; }) =
Leaf=VConstant:1, VConstant:1
Fallback=None
Switch ({ var=AcRoot=t/86; dom=Tag 1; }) =
Switch ({ var=AcField(0 AcRoot=t/86); dom=Int [-inf; -1] [1; +inf] v Tag _; }) =
Leaf=VConstant:2, VConstant:1
Switch ({ var=AcField(0 AcRoot=t/86); dom=Int 0; }) =
Leaf=VConstant:2, VConstant:0
Fallback=None
Fallback=None
Source program decision tree
Switch AcRoot:{
Variant K2 ->
Switch AcRoot.0:{
Bool false ->
Leaf='Int 2 Bool false '
Bool true ->
Leaf='Int 2 Bool true '
} Fallback: Unreachable
Variant K1 ->
Switch AcRoot.0:{
Int 2 ->
Leaf='Int 1 Int 2 '
Int 1 ->
Leaf='Int 1 Int 1 '
} Fallback: Leaf='Int 1 Unit '
Variant K3 ->
Leaf='Int 3 '
} Fallback: Unreachable
The two programs are equivalent.