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 | ||
