| fid ∈ fs ↔ fid ∈ root.fids ∨ fid ∈ ofh.fids, root.dir?, fids-cons(root, fs, ofh), fd ∈ ofh, ofh[fd].fid ∈ fs, n ≤ n1, n1 ≤ # buf, n ≤ # buf, ofh[fd].mode = MODE_W ∨ ofh[fd].mode = MODE_RW ⊦ fid ∈ fs[ofh[fd].fid, mkfile(fs[ofh[fd].fid].meta, splice(buf, 0, fs[ofh[fd].fid].content, ofh[fd].pos, n))] ↔ fid ∈ root.fids ∨ fid ∈ ofh[fd, mkfh(ofh[fd].fid, ofh[fd].mode, ofh[fd].pos + n)].fids |
⊦ fids-cons(root, fs, ofh) ∧ fd ∈ ofh ∧ ofh[fd] = mkfh(fid, mode, m) → fid ∈ fs
Used simplifier rules: fid-in-fs: ⊦ fids-cons(root, fs, ofh) ∧ fd ∈ ofh ∧ ofh[fd] = mkfh(fid, mode, m) → fid ∈ fs;%⊦ fd ∈ ofh ∧ ofh[fd] = mkfh(fid, mode0, n0) → ofh[fd, mkfh(fid, mode1, n1)].fids = ofh.fids; (s)% ⊦ fid ∈ fs[fid0, f] ↔ fid = fid0 ∨ fid ∈ fs; (ws)%⊦ (fid = fh.fid ∧ mode = fh.mode) ∧ m = fh.pos ↔ fh = mkfh(fid, mode, m); (elim) Used terms: ofh[fd], fid0, mode, m