fact: Definition typ_bop o := match o with | BO_Zplus => ((Typ.TZ,Typ.TZ), Typ.TZ) | BO_Zminus => ((Typ.TZ,Typ.TZ), Typ.TZ) | BO_Zmult => ((Typ.TZ,Typ.TZ), Typ.TZ) | BO_Zlt => ((Typ.TZ,Typ.TZ), Typ.Tbool) | BO_Zle => ((Typ.TZ,Typ.TZ), Typ.Tbool) | BO_Zge => ((Typ.TZ,Typ.TZ), Typ.Tbool) | BO_Zgt => ((Typ.TZ,Typ.TZ), Typ.Tbool) | BO_eq t => ((t,t),Typ.Tbool) | BO_BVand s => ((Typ.TBV s,Typ.TBV s), (Typ.TBV s)) | BO_BVor s => ((Typ.TBV s,Typ.TBV s), Typ.TBV s) | BO_BVxor s => ((Typ.TBV s,Typ.TBV s), Typ.TBV s) | BO_BVadd s => ((Typ.TBV s,Typ.TBV s), Typ.TBV s) | BO_BVmult s => ((Typ.TBV s,Typ.TBV s), Typ.TBV s) | BO_BVult s => ((Typ.TBV s,Typ.TBV s), Typ.Tbool) | BO_BVconcat s1 s2 => ((Typ.TBV s1,Typ.TBV s2), (Typ.TBV (s1 + s2))) | BO_BVslt s => ((Typ.TBV s,Typ.TBV s), Typ.Tbool) | BO_BVshl s => ((Typ.TBV s,Typ.TBV s), Typ.TBV s) | BO_BVshr s => ((Typ.TBV s,Typ.TBV s), Typ.TBV s) | BO_select ti te => ((Typ.TFArray ti te, ti), te) | BO_diffarray ti te => ((Typ.TFArray ti te, Typ.TFArray ti te), ti) end.
imports: Bool Int63 Psatz PArray BinNat BinPos ZArith SMT_classes_instances Misc State BVList