@@ -48,7 +48,7 @@ priority rewrite rule.
48
48
49
49
```
50
50
⌈β(X₁)∧α(X₂)⌉
51
- = ⌈ β(X₁)∧ φ(X) ∧ P(X)
51
+ = ⌈ β(X₁) ∧ φ(X) ∧ P(X)
52
52
∧ ¬ (∃ X₁ . φ₁(X₁) ∧ P₁(X₁))
53
53
...
54
54
∧ ¬ (∃ Xn . φn(Xn) ∧ Pn(Xn))
@@ -65,7 +65,7 @@ priority rewrite rule.
65
65
...
66
66
∧ ¬ (∃ Xn . φn(Xn) ∧ Pn(Xn))
67
67
⌉
68
- ∧ ⌈β(X₁)∧ φ(X)⌉ ∧ P(X)
68
+ ∧ ⌈β(X₁) ∧ φ(X)⌉ ∧ P(X)
69
69
// φ(X) ∧ (¬ ∃ Z. α(Z)) = φ(X) ∧ (¬ ∃ Z. ⌈φ(X) ∧ α(Z)⌉)
70
70
// See the Justification section in
71
71
// 2018-11-08-Configuration-Splitting-Simplification.md
@@ -74,19 +74,29 @@ priority rewrite rule.
74
74
...
75
75
∧ ¬ (∃ Xn . ⌈ β(X₁) ∧ φn(Xn) ∧ Pn(Xn) ⌉)
76
76
⌉
77
- ∧ ⌈β(X₁)∧ φ(X)⌉ ∧ P(X)
77
+ ∧ ⌈β(X₁) ∧ φ(X)⌉ ∧ P(X)
78
78
// If P is a predicate then ⌈φ∧P⌉=⌈φ⌉∧P
79
79
= ⌈β(X₁)
80
80
∧ ¬ (∃ X₁ . ⌈ β(X₁) ∧ φ₁(X₁) ⌉ ∧ P₁(X₁))
81
81
...
82
82
∧ ¬ (∃ Xn . ⌈ β(X₁) ∧ φn(Xn) ⌉ ∧ Pn(Xn))
83
83
⌉
84
- ∧ ⌈β(X₁)∧ φ(X)⌉ ∧ P(X)
84
+ ∧ ⌈β(X₁) ∧ φ(X)⌉ ∧ P(X)
85
85
// If P is a predicate then ∃ X . P is a predicate
86
86
// If P is a predicate then ⌈φ∧P⌉=⌈φ⌉∧P
87
87
= ⌈β(X₁)⌉
88
88
∧ ¬ (∃ X₁ . ⌈ β(X₁) ∧ φ₁(X₁) ⌉ ∧ P₁(X₁))
89
89
...
90
90
∧ ¬ (∃ Xn . ⌈ β(X₁) ∧ φn(Xn) ⌉ ∧ Pn(Xn))
91
- ∧ ⌈β(X₁)∧ φ(X)⌉ ∧ P(X)
91
+ ∧ ⌈β(X₁) ∧ φ(X)⌉ ∧ P(X)
92
+ // ⌈t⌉ ∧ ⌈ t ∧ s ⌉ = ⌈ t ∧ s ⌉
93
+ = ⌈β(X₁) ∧ φ(X)⌉ ∧ P(X)
94
+ ∧ ¬ (∃ X₁ . ⌈ β(X₁) ∧ φ₁(X₁) ⌉ ∧ P₁(X₁))
95
+ ...
96
+ ∧ ¬ (∃ Xn . ⌈ β(X₁) ∧ φn(Xn) ⌉ ∧ Pn(Xn))
92
97
```
98
+
99
+ Usually, at least some of the existential clauses should disappear, because
100
+ unification, i.e. the ` ⌈ β(Xi) ∧ φi(Xi) ⌉ ` part, will probably either succeed
101
+ with a full substitution, or will fail. Of course, since we are using symbolic
102
+ inputs, this is not guaranteed.
0 commit comments