| write-inv(n0, n0 + n1, mkinode(ino, md, false, m, m1, m0), buf, n2, dirs, files0, files1) ⊦ files0 -- ino ≠ files1 -- ino ↔ false |
⊦ write-inv(n0, n1, mkinode(ino, md, false, m, m1, m0), buf, n, dirs, files0, files1) → ino ∈ files0
⊦ write-inv(n0, n1, mkinode(ino, md, false, m, m1, m0), buf, n, dirs, files0, files1) → ino ∈ files1
⊦ write-inv(n0, n0 + n1, mkinode(ino, md, false, m, m1, m0), buf, n2, dirs, files0, files1) → n2 ≤ n1
⊦ write-inv(n0, n1, mkinode(ino, md, false, m, m1, m0), buf, n, dirs, files0, files1) → ino ∈ files0
⊦ write-inv(n0, n0 + n1, mkinode(ino, md, false, m, m1, m0), buf, n2, dirs, files0, files1) → n2 ≤ n1
write-inv(n0, n0 + n1, mkinode(ino, md, false, m, m1, m0), buf, n2, dirs, files0, files1), ino ∈ files1 ⊦ files0 -- ino = files1 -- ino
Used simplifier rules: write-inv-in1: ⊦ write-inv (n0, n1, mkinode(ino, md, false, m, m1, m0), buf, n, dirs, files0, files1) → ino ∈ files0;%write-inv-in0: ⊦ write-inv (n0, n1, mkinode(ino, md, false, m, m1, m0), buf, n, dirs, files0, files1) → ino ∈ files1;%write-inv-ls: ⊦ write-inv (n0, n0 + n1, mkinode(ino, md, false, m, m1, m0), buf, n2, dirs, files0, files1) → n2 ≤ n1;%write-inv-in1: ⊦ write-inv (n0, n1, mkinode(ino, md, false, m, m1, m0), buf, n, dirs, files0, files1) → ino ∈ files0;%write-inv-ls: ⊦ write-inv (n0, n0 + n1, mkinode(ino, md, false, m, m1, m0), buf, n2, dirs, files0, files1) → n2 ≤ n1;%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic