]> matita.cs.unibo.it Git - helm.git/blob - helm/software/components/ng_paramodulation/superposition.mli
5878918c2b37d60c1a8b8a4b63758d927882b229
[helm.git] / helm / software / components / ng_paramodulation / superposition.mli
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 (* $Id: index.mli 9822 2009-06-03 15:37:06Z tassi $ *)
13
14 module Superposition (B : Terms.Blob) : 
15   sig
16
17     exception Success of B.t Terms.bag * int * B.t Terms.unit_clause
18
19     (* The returned active set is the input one + the selected clause *)
20     val infer_right :
21           B.t Terms.bag -> 
22           int -> (* maxvar *)
23           B.t Terms.unit_clause -> (* selected passive *)
24           Index.Index(B).active_set ->
25             B.t Terms.bag * int * Index.Index(B).active_set * B.t Terms.unit_clause list
26
27     val infer_left :  
28           B.t Terms.bag -> 
29           int -> (* maxvar *)
30           B.t Terms.unit_clause -> (* selected goal *)
31           Index.Index(B).active_set ->
32             B.t Terms.bag * int * B.t Terms.unit_clause list
33
34     val demodulate : 
35           B.t Terms.bag ->
36           B.t Terms.unit_clause ->
37           Index.Index(B).DT.t -> B.t Terms.bag * B.t Terms.unit_clause
38
39     val forward_simplify : 
40           Index.Index(B).DT.t ->
41           B.t Terms.bag ->
42           B.t Terms.unit_clause ->
43             (B.t Terms.bag * B.t Terms.unit_clause) option
44
45     (* may raise success *)
46     val backward_simplify : 
47           int ->
48           Index.Index(B).DT.t ->
49           B.t Terms.bag ->
50           B.t Terms.unit_clause ->
51             B.t Terms.bag * B.t Terms.unit_clause
52
53   end
54
55
56