| t0 _ t1 => t', ∀ t'. t0 => t' ↔ (∃ C, t2, t1. context(C) ∧ t0 = C[t2] ∧ t2 =>top t1 ∧ t' = C[t1]), ∀ t'. t1 => t' ↔ (∃ C, t0, t2. context(C) ∧ t1 = C[t0] ∧ t0 =>top t2 ∧ t' = C[t2]) ⊦ ∃ C, t2, t3. context(C) ∧ t0 _ t1 = C[t2] ∧ t2 =>top t3 ∧ t' = C[t3] |
⊦ t => t' ↔ (∃ C. (∃ v1, v2. t = C[K _ v1 _ v2] ∧ t' = C[v1] ∧ value(v1) ∧ value(v2) ∧ context(C)) ∨ (∃ v1, v2, v3. t = C[S _ v1 _ v2 _ v3] ∧ t' = C[v1 _ v3 _ (v2 _ v3)] ∧ value(v1) ∧ value(v2) ∧ value(v3) ∧ context(C)))
∃ C. (∃ v1, v2. t0 _ t1 = C[K _ v1 _ v2] ∧ t' = C[v1] ∧ value(v1) ∧ value(v2) ∧ context(C)) ∨ (∃ v1, v2, v3. t0 _ t1 = C[S _ v1 _ v2 _ v3] ∧ t' = C[v1 _ v3 _ (v2 _ v3)] ∧ value(v1) ∧ value(v2) ∧ value(v3) ∧ context(C)), ∀ t'. t0 => t' ↔ (∃ C, t2, t1. context(C) ∧ t0 = C[t2] ∧ t2 =>top t1 ∧ t' = C[t1]), ∀ t'. t1 => t' ↔ (∃ C, t0, t2. context(C) ∧ t1 = C[t0] ∧ t0 =>top t2 ∧ t' = C[t2]) ⊦ ∃ C, t2, t3. context(C) ∧ t0 _ t1 = C[t2] ∧ t2 =>top t3 ∧ t' = C[t3]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (t', t0 _ t1)]]