fact: Definition build_pexpr_atom_aux (vm:vmap) (h:atom) : vmap * PExpr Z := match h with | Abop BO_Zplus a1 a2 => let (vm, pe1) := build_pexpr vm a1 in let (vm, pe2) := build_pexpr vm a2 in (vm, PEadd pe1 pe2) | Abop BO_Zminus a1 a2 => let (vm, pe1) := build_pexpr vm a1 in let (vm, pe2) := build_pexpr vm a2 in (vm, PEsub pe1 pe2) | Abop BO_Zmult a1 a2 => let (vm, pe1) := build_pexpr vm a1 in let (vm, pe2) := build_pexpr vm a2 in (vm, PEmul pe1 pe2) | Auop UO_Zopp a => let (vm, pe) := build_pexpr vm a in (vm, PEopp pe) | _ => match build_z_atom h with | Some z => (vm, PEc z) | None => let (vm,p) := find_var vm h in (vm,PEX p) end end.
imports: Bool List Int63 Ring63 PArray ZArith Misc State SMT_terms Euf RingMicromega ZMicromega Coq.micromega.Tauto Psatz