| context(C0), value(v0), value(v), ¬ C0[K _ v _ v0] => C0[v] ⊦ ∃ v1. C0[K _ v _ v0] _ v4 = K _ (C0[v] _ v4) _ v1 ∧ value(C0[v] _ v4) ∧ value(v1), ∃ v1, v2, v3. C0[K _ v _ v0] _ v4 = S _ v1 _ v2 _ v3 ∧ C0[v] _ v4 = v1 _ v3 _ (v2 _ v3) ∧ value(v1) ∧ value(v2) ∧ value(v3) |
value(v), value(v0), context(C0) ⊦ C0[K _ v _ v0] => C0[v], ∃ v1, v2, v3. C0[K _ v _ v0] _ v4 = S _ v1 _ v2 _ v3 ∧ C0[v] _ v4 = v1 _ v3 _ (v2 _ v3) ∧ value(v1) ∧ value(v2) ∧ value(v3), ∃ v1. C0[K _ v _ v0] _ v4 = K _ (C0[v] _ v4) _ v1 ∧ value(C0[v] _ v4) ∧ value(v1)
[[CONCRETESIMPRULES : ()]]