(* ||M|| This file is part of HELM, an Hypertextual, Electronic ||A|| Library of Mathematics, developed at the Computer Science ||T|| Department, University of Bologna, Italy. ||I|| ||T|| HELM is free software; you can redistribute it and/or ||A|| modify it under the terms of the GNU General Public License \ / version 2 or (at your option) any later version. \ / This software is distributed as is, NO WARRANTY. V_______________________________________________________________ *) module L = List module U = NUri module C = Cps module E = Entity module G = Options type csys = { uri: E.uri; mutable tp : int list; mutable t1 : int list; mutable tn : (int * int) list; } let mark a = E.mark C.err C.start a (* interface functions ******************************************************) let init () = { uri = U.uri_of_string (G.get_baseuri ()); tp = []; t1 = []; tn = [] } let add_nonzero s a = if !G.si && !G.cc then let i = abs (mark a) in if L.mem i s.tp then () else s.tp <- i :: s.tp else () let add_zero s a = if !G.si && !G.cc then let i = abs (mark a) in if L.mem i s.t1 then () else s.t1 <- i :: s.t1 else () let add_equal s xa ia = if !G.si && !G.cc then let i = abs (mark xa), abs (mark ia) in if L.mem i s.tn then () else s.tn <- i :: s.tn else ()