diff options
Diffstat (limited to 'src/main/scala/rsacomb/SkolemStrategy.scala')
-rw-r--r-- | src/main/scala/rsacomb/SkolemStrategy.scala | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main/scala/rsacomb/SkolemStrategy.scala b/src/main/scala/rsacomb/SkolemStrategy.scala index 9df167f..bcf6828 100644 --- a/src/main/scala/rsacomb/SkolemStrategy.scala +++ b/src/main/scala/rsacomb/SkolemStrategy.scala | |||
@@ -29,7 +29,7 @@ object SkolemStrategy { | |||
29 | def genFunctionString(str : String) = "f_" ++ str.hashCode.toString | 29 | def genFunctionString(str : String) = "f_" ++ str.hashCode.toString |
30 | } | 30 | } |
31 | 31 | ||
32 | /* Functional skolemization | 32 | /* Constant skolemization |
33 | * | 33 | * |
34 | * From | 34 | * From |
35 | * A ⊑ ∃R.B | 35 | * A ⊑ ∃R.B |
@@ -42,5 +42,21 @@ object SkolemStrategy { | |||
42 | def apply(axiom : String) = new Constant(genConstantString(axiom)) | 42 | def apply(axiom : String) = new Constant(genConstantString(axiom)) |
43 | def genConstantString(str : String) = "internal:c_" ++ str.hashCode.toString | 43 | def genConstantString(str : String) = "internal:c_" ++ str.hashCode.toString |
44 | } | 44 | } |
45 | |||
46 | /* (RSA) Constant skolemization | ||
47 | * This is a special skolemization option to introduce additional atoms for RSA | ||
48 | * checking algorithm. | ||
49 | * | ||
50 | * From | ||
51 | * A ⊑ ∃R.B | ||
52 | * to | ||
53 | * A(y) -> R(x,c), PE(x,c), B(c) | ||
54 | * for c, fresh constant associated with the input axiom and PE an internal predicate. | ||
55 | */ | ||
56 | case class ConstantRSA(const : String) extends SkolemStrategy | ||
57 | object ConstantRSA { | ||
58 | def apply(axiom : String) = new ConstantRSA(genConstantString(axiom)) | ||
59 | def genConstantString(str : String) = "internal:c_" ++ str.hashCode.toString | ||
60 | } | ||
45 | } | 61 | } |
46 | 62 | ||