]> matita.cs.unibo.it Git - helm.git/blob - helm/software/components/ng_paramodulation/superposition.mli
Active goals are now demodulated after selecting a positive clause.
[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                         (* bag, maxvar, meeting point *)
18     exception Success of B.t Terms.bag * int * B.t Terms.unit_clause
19
20     (* The returned active set is the input one + the selected clause *)
21     val infer_right :
22           B.t Terms.bag -> 
23           int -> (* maxvar *)
24           B.t Terms.unit_clause -> (* selected passive *)
25           Index.Index(B).active_set ->
26             B.t Terms.bag * int * Index.Index(B).active_set * B.t Terms.unit_clause list
27
28     val infer_left :  
29           B.t Terms.bag -> 
30           int -> (* maxvar *)
31           B.t Terms.unit_clause -> (* selected goal *)
32           Index.Index(B).active_set ->
33             B.t Terms.bag * int * B.t Terms.unit_clause list
34
35     val demodulate : 
36           B.t Terms.bag ->
37           B.t Terms.unit_clause ->
38           Index.Index(B).DT.t -> B.t Terms.bag * B.t Terms.unit_clause
39
40     val forward_simplify : 
41           Index.Index(B).DT.t ->
42           B.t Terms.bag ->
43           B.t Terms.unit_clause ->
44             (B.t Terms.bag * B.t Terms.unit_clause) option
45
46     (* may raise success *)
47     val backward_simplify : 
48           int ->
49           Index.Index(B).DT.t ->
50           B.t Terms.bag ->
51           B.t Terms.unit_clause ->
52             B.t Terms.bag * B.t Terms.unit_clause
53
54   end
55
56
57