123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263(******************************************************************************)(* *)(* The Alt-Ergo theorem prover *)(* Copyright (C) 2006-2013 *)(* *)(* Sylvain Conchon *)(* Evelyne Contejean *)(* *)(* Francois Bobot *)(* Mohamed Iguernelala *)(* Stephane Lescuyer *)(* Alain Mebsout *)(* *)(* CNRS - INRIA - Universite Paris Sud *)(* *)(* This file is distributed under the terms of the Apache Software *)(* License version 2.0 *)(* *)(* ------------------------------------------------------------------------ *)(* *)(* Alt-Ergo: The SMT Solver For Software Verification *)(* Copyright (C) 2013-2018 --- OCamlPro SAS *)(* *)(* This file is distributed under the terms of the Apache Software *)(* License version 2.0 *)(* *)(******************************************************************************)openTyped(* Sat entry *)typesat_decl_aux=|Assumeofstring*Expr.t*bool|PredDefofExpr.t*string(*name of the predicate*)|RwtDefof(Expr.trwt_rule)list|Queryofstring*Expr.t*goal_sort|ThAssumeofExpr.th_elttypesat_tdecl={st_loc:Loc.t;st_decl:sat_decl_aux}letprint_auxfmt=function|Assume(name,e,b)->Format.fprintffmt"assume %s(%b): @[<hov>%a@]"namebExpr.printe|PredDef(e,name)->Format.fprintffmt"pred-def %s: @[<hov>%a@]"nameExpr.printe|RwtDefl->Format.fprintffmt"rwrts: @[<v>%a@]"(Util.print_list_pp~sep:Format.pp_print_space~pp:(print_rwtExpr.print))l|Query(name,e,sort)->Format.fprintffmt"query %s(%a): @[<hov>%a@]"nameprint_goal_sortsortExpr.printe|ThAssumet->Format.fprintffmt"th assume %a"Expr.print_th_elttletprintfmtdecl=print_auxfmtdecl.st_decl