1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495(**************************************************************************)(* *)(* This file is part of WP plug-in of Frama-C. *)(* *)(* Copyright (C) 2007-2023 *)(* CEA (Commissariat a l'energie atomique et aux energies *)(* alternatives) *)(* *)(* you can redistribute it and/or modify it under the terms of the GNU *)(* Lesser General Public License as published by the Free Software *)(* Foundation, version 2.1. *)(* *)(* It is distributed in the hope that it will be useful, *)(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)(* GNU Lesser General Public License for more details. *)(* *)(* See the GNU Lesser General Public License version 2.1 *)(* for more details (enclosed in the file licenses/LGPLv2.1). *)(* *)(**************************************************************************)typevar=Lang.F.vartypetau=Lang.F.tautypefield=Lang.fieldtypelfun=Lang.lfuntypeterm=Lang.F.termtypepred=Lang.F.predtyperepr=|True|False|Andoftermlist|Oroftermlist|Notofterm|Implyoftermlist*term|Ifofterm*term*term|Varofvar|IntofZ.t|RealofQ.t|Addoftermlist|Muloftermlist|Divofterm*term|Modofterm*term|Eqofterm*term|Neqofterm*term|Ltofterm*term|Leqofterm*term|TimesofZ.t*term|Calloflfun*termlist|Fieldofterm*field|Recordof(field*term)list|Cstoftau*term|Getofterm*term|Setofterm*term*term|HigherOrdermoduleL=Qed.Logicletterme:repr=matchLang.F.reprewith|L.True->True|L.False->False|L.Andts->Andts|L.Orts->Orts|L.Nott->Nott|L.If(a,b,c)->If(a,b,c)|L.Imply(hs,p)->Imply(hs,p)|L.Kintz->Intz|L.Krealr->Realr|L.Addts->Addts|L.Mults->Mults|L.Div(a,b)->Div(a,b)|L.Mod(a,b)->Mod(a,b)|L.Eq(a,b)->Eq(a,b)|L.Neq(a,b)->Neq(a,b)|L.Lt(a,b)->Lt(a,b)|L.Leq(a,b)->Leq(a,b)|L.Times(k,t)->Times(k,t)|L.Fun(f,ts)->Call(f,ts)|L.Rget(r,f)->Field(r,f)|L.Rdeffvs->Recordfvs|L.Acst(t,v)->Cst(t,v)|L.Aget(a,k)->Get(a,k)|L.Aset(a,k,v)->Set(a,k,v)|L.Fvarx->Varx|L.Bvar_|L.Bind_|L.Apply_->HigherOrderletpredp=term(Lang.F.e_propp)letlfun=Lang.name_of_lfunletfield=Lang.name_of_field(* -------------------------------------------------------------------------- *)