fact: Fixpoint MI_mult (e f:expr) {struct e} : expr := let d := expr_mult e f in match e, f with | e, expr_int Z0 => expr_int 0 | expr_mult e1 e2, f => expr_mult e1 (MI_mult e2 f) | expr_int i, expr_int j => expr_int (i * j) | _, _ => d end.
imports: CoRN.logic.CLogic Coq.Bool.Bool