]> matita.cs.unibo.it Git - helm.git/blob - helm/software/components/ng_paramodulation/subst.ml
662a9f0d71c8e4d067c8e77c7dbdce7a29e913d6
[helm.git] / helm / software / components / ng_paramodulation / subst.ml
1 (*
2     ||M||  This file is part of HELM, an Hypertextual, Electronic        
3     ||A||  Library of Mathematics, developed at the Computer Science     
4     ||T||  Department, University of Bologna, Italy.                     
5     ||I||                                                                
6     ||T||  HELM is free software; you can redistribute it and/or         
7     ||A||  modify it under the terms of the GNU General Public License   
8     \   /  version 2 or (at your option) any later version.      
9      \ /   This software is distributed as is, NO WARRANTY.     
10       V_______________________________________________________________ *)
11
12 let empty_subst = [];;
13
14 let buildsubst n t tail = (n,t) :: tail ;;
15
16 let rec lookup_subst var subst =
17   match var with
18     | Terms.Var i ->
19         (try
20           lookup_subst (List.assoc i subst) subst
21         with
22             Not_found -> var)
23     | _ -> var
24 ;;
25
26 let is_in_subst i subst = List.mem_assoc i subst;;
27
28 (* filter out from metasenv the variables in substs *)
29 let filter subst varlist =
30   List.filter
31     (fun m ->
32        not (is_in_subst m subst))
33     varlist
34 ;;