| ⊦ ⟪fail#(; ; err)⟫ ( ( err = ESUCCESS → ⟨posix_format#(n, isdir0, LEB_SIZE, md; ; root, fs0, ofh0, psynced, err0)⟩ (ofh0 = ∅ ∧ fs0 = abs-files(files) ∧ abs(root, ROOT_INO)(dirs) ∧ (psynced → asynced) ∧ ESUCCESS = err0)) ∧ ( err ≠ ESUCCESS → (∀ tree, fs, ofh, isdir. ⟨posix_format#(n, isdir0, LEB_SIZE, md; ; root, fs0, ofh0, psynced, err0)⟩ (tree = root ∧ fs = fs0 ∧ ofh = ofh0 ∧ (isdir ↔ psynced) ∧ err = err0)))) |
⊦ ⟪choose err0 with ⌊err0⌋ in err := err0⟫ ( ( err = ESUCCESS → ⟨posix_format#(n, isdir0, LEB_SIZE, md; ; root, fs0, ofh0, psynced, err0)⟩ (ofh0 = ∅ ∧ fs0 = abs-files(files) ∧ abs(root, ROOT_INO)(dirs) ∧ (psynced → asynced) ∧ ESUCCESS = err0)) ∧ ( err ≠ ESUCCESS → (∀ tree, fs, ofh, isdir. ⟨posix_format#(n, isdir0, LEB_SIZE, md; ; root, fs0, ofh0, psynced, err0)⟩ (tree = root ∧ fs = fs0 ∧ ofh = ofh0 ∧ (isdir ↔ psynced) ∧ err = err0))))
Used simplifier rules: fail#(; ; ERR){choose ERR0 with ⌊ERR0⌋ in ERR := ERR0};