| fo.inodes?, ro.inodes?, log-cons(log, fs), ri-cons(ri, fs), ri-inj(fi), ri-inj(ri) ⊦ ¬ dups([]) ∧ ¬ dups([]) ∧ new([], fs) ∧ [].toSet ⊆ dom ri ∧ # [] = # [] ∧ [].toSet ∩ log.toSet = ∅ ∧ ⟨fs1 := fs[[], fs[ri[[]]]], log1 := log + []; ri[[]] := []; aubifs_core_gc_drop#(ri, log1; fs1); boolvar := ?⟩ (boolvar ∧ fs = fs1 ∧ log = log1) |
ro.inodes?, fo.inodes?, log-cons(log, fs), ri-cons(ri, fs), ri-inj(ri), ri-inj(fi) ⊦ ⟨fs1 := fs, log1 := log; ri := ri; aubifs_core_gc_drop#(ri, log1; fs1); boolvar := ?⟩ (boolvar ∧ fs = fs1 ∧ log = log1)
Used simplifier rules: ⊦ ri[[], []] = ri; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ ax + [] = ax; (s)% ⊦ fs[[], []] = fs; (s)% ⊦ fs[[]] = []; (s)% ⊦ ri[[]] = []; (s)%int-c: ⊦ as ∩ as0 = as0 ∩ as; from specification set-union[node-store]%int-a: ⊦ (as ∩ as0) ∩ as1 = as ∩ as0 ∩ as1; from specification set-union[node-store]% ⊦ as ∩ ∅ = ∅; (s)% ⊦ [].toSet = ∅; (s)% ⊦ # [] = 0; (s)% ⊦ # [] = 0; (s)% ⊦ ∅ ⊆ ks; (s)% ⊦ [].toSet = ∅; (s)% ⊦ new([], fs); (s)% ⊦ ¬ dups([]); (s)% ⊦ ¬ dups([]); (s)