Question about operator fusion concepts


I read the paper about TVM(End to End Optimizing Compiler for Deep Learning) and tvm source code .I get confused of injective/reduction/complex-out-fusable/opaque ,what does they mean ?I don’t know clearly , could you please give me more example to explain in detail. thanks.I also read halide a little , it also mentioned fusion . Is it the same as you said?