| C = O, t0 _ t1 = C[t2], 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]), t2 = K _ v _ v0 ∧ t = v ∧ value(v) ∧ value(v0) ∨ t2 = S _ v1 _ v2 _ v3 ∧ t = v1 _ v3 _ (v2 _ v3) ∧ value(v1) ∧ value(v2) ∧ value(v3) ⊦ t0 _ t1 => C[t] |
t0 _ t1 = K _ v _ v0 ∧ t = v ∧ value(v) ∧ value(v0) ∨ t0 _ t1 = S _ v1 _ v2 _ v3 ∧ t = v1 _ v3 _ (v2 _ v3) ∧ value(v1) ∧ value(v2) ∧ value(v3), ∀ t'. t1 => t' ↔ (∃ C, t0, t2. context(C) ∧ t1 = C[t0] ∧ t0 =>top t2 ∧ t' = C[t2]), ∀ t'. t0 => t' ↔ (∃ C, t2, t1. context(C) ∧ t0 = C[t2] ∧ t2 =>top t1 ∧ t' = C[t1]) ⊦ t0 _ t1 => t
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ context(O)], [CSIMPSEQ : ⊦ O[t] = t])]]