| inv(buf) ⊦ (buf .len:= 0) .size = n→i(# (buf .len:= 0) .data) ∧ (buf .len:= 0) .size ≠ 0 ∧ 0 ≤ (buf .len:= 0) .first ∧ (buf .len:= 0) .first < (buf .len:= 0) .size ∧ 0 ≤ (buf .len:= 0) .len ∧ (buf .len:= 0) .len ≤ (buf .len:= 0) .size |
inv(buf) ⊦ buf .size = n→i(# buf .data) ∧ buf .size ≠ 0 ∧ 0 ≤ buf .first ∧ buf .first < buf .size ∧ ¬ buf .size < 0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i ≠ j → (i ≤ j ↔ i < j)], [CSIMPSEQ : ⊦ (buf .len:= i1) .len = i1], [CSIMPSEQ : ⊦ (buf .len:= i1) .first = buf .first], [CSIMPSEQ : ⊦ (buf .len:= i1) .data = buf .data], [CSIMPSEQ : ⊦ (buf .len:= i1) .size = buf .size])]]