| 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) |
n = 0, ro = ks0, ri ⊖ ks0 = ri1 ⊖ ro1, ks0.inodes?, ro1.inodes?, key ∈ ro1, key ∈ ks0, ks0 ⊆ ro1 ⊦ ⟪let ks = datakeys(key, n, ri) in ri := ri \ ks; 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), # ks0 = 0, # ro1 = 0, ks0 = ∅, ro1 = ∅
Used simplifier rules: aubifs_core_index_truncate#(KEY, N, FI, RO, FO, FS, LOG, CSYNCED; RI) {let KS = datakeys(KEY, N, RI) in RI := RI \ KS};