fact: Fixpoint NormR (e:expr) : expr := match e with | expr_var n => expr_plus (expr_mult e expr_one) expr_zero | expr_int i => e | expr_plus e1 e2 => PP_plus (NormR e1) (NormR e2) | expr_mult e1 e2 => PP_mult (NormR e1) (NormR e2) | expr_div e1 e2 => e | expr_unop f e => expr_plus (expr_mult (expr_unop f (NormR e)) expr_one) expr_zero | expr_binop f e e' => expr_plus (expr_mult (expr_binop f (NormR e) (NormR e')) expr_one) expr_zero | expr_part f e => expr_plus (expr_mult (expr_part f (NormR e)) expr_one) expr_zero end.
imports: CoRN.logic.CLogic Coq.Bool.Bool