| err = ESUCCESS, ks = ks0, ks = ro, ks1 = ro1, ri1 = ri0, ro0 = ro1, ri ⊖ ro = ri1 ⊖ ro1, ks.inodes?, ro1.inodes?, key ∈ ks, ro ⊆ ro1 ⊦ ⟪aubifs_core_index_truncate#(key, 0, fi, ro, fo, fs, log, boolvar; ri); aubifs_core_index_remove#(key, fi, ro, fo, fs, log, boolvar; ri); aubifs_core_orphans_remove#(key, ri, fi, fo, fs, log, boolvar; ro); ks := ks -- key⟫ ((ks = ro ∧ ro ⊆ ro1 ∧ ri ⊖ ro = ri1 ⊖ ro1 ∧ ks.inodes?) ∧ # ks < # ks0), ks = ∅ |
ri ⊖ ks0 = ri1 ⊖ ro1, # ks0 ≠ 0, # ro1 ≠ 0, ks0 ≠ ∅, ro1 ≠ ∅, ro1.inodes?, ks0.inodes?, key ∈ ks0, key ∈ ro1, ks0 ⊆ ro1 ⊦ ⟪aubifs_core_index_truncate#(key, 0, fi, ks0, fo, fs, log, boolvar; ri); aubifs_core_index_remove#(key, fi, ks0, fo, fs, log, boolvar; ri); ro0 := ks0; ks1 := ks0; aubifs_core_orphans_remove#(key, ri, fi, fo, fs, log, boolvar; ks0); ks := ro0 -- key⟫ (ks = ks0 ∧ ks0 ⊆ ro1 ∧ ri ⊖ ks0 = ri1 ⊖ ro1 ∧ ks0.inodes? ∧ # ks0 < # ks1)
Used simplifier rules: size-zero-01: ⊦ ks ≠ ∅ → # ks ≠ 0; (forward) from specification set-basic[node-index]%ne-01: ⊦ key ∈ ks → ks ≠ ∅; (forward) from specification set-basic[node-index]%sub-in: ⊦ key ∈ ks ∧ ks ⊆ ks0 → key ∈ ks0; (forward) from specification set-basic[node-index]