1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
package org.qedeq.kernel.bo.logic; |
19 |
|
|
20 |
|
import org.qedeq.kernel.base.list.Element; |
21 |
|
import org.qedeq.kernel.bo.logic.wf.FormulaCheckException; |
22 |
|
import org.qedeq.kernel.bo.logic.wf.LogicalCheckException; |
23 |
|
import org.qedeq.kernel.bo.logic.wf.Operators; |
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
@link |
28 |
|
|
29 |
|
|
30 |
|
|
31 |
|
|
32 |
|
@version |
33 |
|
@author |
34 |
|
|
|
|
| 0% |
Uncovered Elements: 22 (22) |
Complexity: 9 |
Complexity Density: 0,75 |
|
35 |
|
public final class LogicalEquivalence { |
36 |
|
|
37 |
|
|
38 |
|
|
39 |
|
|
|
|
| - |
Uncovered Elements: 0 (0) |
Complexity: 1 |
Complexity Density: - |
|
40 |
0
|
private LogicalEquivalence() {... |
41 |
|
|
42 |
|
} |
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
47 |
|
@param |
48 |
|
@param |
49 |
|
@throws |
50 |
|
|
|
|
| 0% |
Uncovered Elements: 20 (20) |
Complexity: 8 |
Complexity Density: 0,67 |
|
51 |
0
|
public static final void checkEquivalence(final Element formula1,... |
52 |
|
final Element formula2) |
53 |
|
throws LogicalCheckException { |
54 |
0
|
if (formula1.equals(formula2)) { |
55 |
0
|
return; |
56 |
|
} |
57 |
0
|
if (formula1.isAtom() || formula2.isAtom()) { |
58 |
0
|
return; |
59 |
|
} |
60 |
0
|
final String op1 = formula1.getList().getOperator(); |
61 |
0
|
final String op2 = formula2.getList().getOperator(); |
62 |
0
|
if (op1.equals(op2) && (op1.equals(Operators.CONJUNCTION_OPERATOR) |
63 |
|
|| op1.equals(Operators.DISJUNCTION_OPERATOR))) { |
64 |
0
|
final EqualFormulaSet sub1 = new EqualFormulaSet(formula1.getList()); |
65 |
0
|
final EqualFormulaSet sub2 = new EqualFormulaSet(formula2.getList()); |
66 |
0
|
if (sub1.equals(sub2)) { |
67 |
0
|
return; |
68 |
|
} |
69 |
|
|
70 |
|
} |
71 |
0
|
throw new FormulaCheckException(61, "no logical equivalence found", formula2, null); |
72 |
|
} |
73 |
|
|
74 |
|
} |