]> matita.cs.unibo.it Git - helm.git/blob - helm/software/components/ng_paramodulation/superposition.mli
Added optionnal one pass simplification (instead of keep_simplified)
[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 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 simplify_goal : 
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     val one_pass_simplification:
55       B.t Terms.unit_clause ->
56       Index.Index(B).active_set ->
57       B.t Terms.bag ->
58       (B.t Terms.unit_clause * B.t Terms.bag * Index.Index(B).active_set) option
59
60
61     val keep_simplified:
62       B.t Terms.unit_clause ->
63       Index.Index(B).active_set ->
64       B.t Terms.bag ->
65       (B.t Terms.unit_clause * B.t Terms.bag * Index.Index(B).active_set) option
66
67
68   end