fact: Fixpoint eq_monom (e f:expr) {struct e} : bool := match e, f with | expr_mult (expr_var n) e', expr_mult (expr_var m) f' => andb (eq_nat n m) (eq_monom e' f') | expr_mult (expr_unop n e1) e', expr_mult (expr_unop m f1) f' => andb (eq_nat n m) (andb (eq_monom e' f') (eq_expr e1 f1)) | expr_mult (expr_binop n e1 e2) e', expr_mult (expr_binop m f1 f2) f' => andb (eq_nat n m) (andb (eq_monom e' f') (andb (eq_expr e1 f1) (eq_expr e2 f2))) | expr_mult (expr_part n e1) e', expr_mult (expr_part m f1) f' => andb (eq_nat n m) (andb (eq_monom e' f') (eq_expr e1 f1)) | expr_int _, expr_int _ => true | _, _ => false end.
imports: CoRN.logic.CLogic Coq.Bool.Bool