| ∃ files0, af. files = (files0 ++ ino)[ino, af] ∧ ¬ ino ∈ files0, ∀ files0, dirs. # files0 < # files → (∀ dirs0, files. # dirs0 < # dirs → true → (∃ ino. ino ≠ 0 ∧ (∀ n. n ∈ dirs0 ∨ n ∈ files → n < ino))) → (∃ ino. ino ≠ 0 ∧ (∀ n. n ∈ dirs ∨ n ∈ files0 → n < ino)) ⊦ ino = 0, ∃ ino. ino ≠ 0 ∧ (∀ n. n ∈ files → n < ino) |
∀ files1, dirs. # files1 < # (files0 ++ ino)[ino, af] → (∀ dirs0, files. # dirs0 < # dirs → true → (∃ ino. ino ≠ 0 ∧ (∀ n. n ∈ dirs0 ∨ n ∈ files → n < ino))) → (∃ ino. ino ≠ 0 ∧ (∀ n. n ∈ dirs ∨ n ∈ files1 → n < ino)) ⊦ ino = 0, ino ∈ files0, ∃ ino0. ino0 ≠ 0 ∧ (∀ n. n = ino ∨ n ∈ files0 → n < ino0)
Used simplifier rules: ino ≠ 0, ¬ ino ∈ files ⊦ ino0 ∈ files ++ ino ↔ ino0 = ino ∨ ino0 ∈ files; (s)% ⊦ ino ∈ files[ino0, af] ↔ ino ∈ files; (s)