| fo0.inodes?, ro.inodes?, file-node-cons(fs0, ri), log-cons(log0, fs0), orphans-cons(fs0, ri, ro), replay-cons-strong(fs0, replay-log(log0, fs0, fi0 ⊖ fo0), ∅, fi0, fo0, log0), replay-cons-strong(fs0, ri, ro, fi0, fo0, log0), replay-safe(log0, fs0, fi0 ⊖ fo0), ri-inj(ri), ri-inj(fi0), ubifs-cons(fs0, ri, ro, fi0, fo0, log0) ⊦ orphans-cons(fs0, replay-log(log0, fs0, fi0 ⊖ fo0), ∅) ∧ file-node-cons(fs0, replay-log(log0, fs0, fi0 ⊖ fo0)) ∧ ¬ inodekey(0) ∈ replay-log(log0, fs0, fi0 ⊖ fo0) ∧ ri-cons(replay-log(log0, fs0, fi0 ⊖ fo0), fs0) ∧ log-cons(log0, fs0) ∧ ¬ dups(log0) ∧ ri-closed(replay-log(log0, fs0, fi0 ⊖ fo0), fs0, ∅) ∧ ∅.inodes? ∧ fo0.inodes? ∧ ∅ ⊆ dom replay-log(log0, fs0, fi0 ⊖ fo0) ∧ fo0 ⊆ dom fi0 |
ro.inodes?, fo0.inodes?, file-node-cons(fs0, ri), log-cons(log0, fs0), orphans-cons(fs0, ri, ro), replay-cons-strong(fs0, ri, ro, fi0, fo0, log0), replay-cons-strong(fs0, replay-log(log0, fs0, fi0 ⊖ fo0), ∅, fi0, fo0, log0), replay-safe(log0, fs0, fi0 ⊖ fo0), ri-inj(fi0), ri-inj(ri), ubifs-cons(fs0, ri, ro, fi0, fo0, log0) ⊦ orphans-cons(fs0, replay-log(log0, fs0, fi0 ⊖ fo0), ∅) ∧ file-node-cons(fs0, replay-log(log0, fs0, fi0 ⊖ fo0)) ∧ ¬ inodekey(0) ∈ replay-log(log0, fs0, fi0 ⊖ fo0) ∧ ri-cons(replay-log(log0, fs0, fi0 ⊖ fo0), fs0) ∧ ri-closed(replay-log(log0, fs0, fi0 ⊖ fo0), fs0, ∅)
Used simplifier rules: ⊦ ubifs-cons(fs, ri, ro, fi, fo, log) → fo ⊆ dom fi; (ss)% ⊦ ∅ ⊆ ks; (s)% ⊦ ubifs-cons(fs, ri, ro, fi, fo, log) → fo.inodes?; (ss)% ⊦ ∅.inodes?; (s)% ⊦ ubifs-cons(fs, ri, ro, fi, fo, log) → ¬ dups(log); (s)% ⊦ ubifs-cons(fs, ri, ro, fi, fo, log) → log-cons(log, fs); (ss)