| jvalid ↔ jvalid2, as = fi2[ks], fi = fi2 \ ks, fi0 = fi1, fi2 = ri, gstore = gstore3, gstore0 = gstore4, jro = jro0, ks = datakeys(key, n, fi2), remove-refsize0(gstore3) = gstore3, elems nx ∩ jro0 = ∅, dom gstore3 ∪ elems nx = dom gstore4 ∪ jro0, jro1.keys.inodes?, p_os.keys.inodes?, fi1.inos < pmaxino, p_os < pmaxino, jro1 < jmaxino, ri.inos < jmaxino, inv(gstore4 \ jro0), inv(gstore3), log-cons(abs-log(nx, gstore4 ↓), nodes(gstore4 ↓, jro0)), refsize-cons(gstore3, range fi1), refsize-cons(gstore4, range ri), ri-inj(fi1), ri-inj(ri), pmaxino ≤ jmaxino, fi1.lebs ⊆ dom gstore3, ri.lebs ⊆ dom gstore4, jvalid1 ∧ nx ≠ [] → valid-journal-head(nx, gstore4, jro0), jvalid3 → jvalid2 ⊦ [gstore1 := gstore4; gstore2 := gstore4; gjournal_remove_addresses#(jvalid1, fi, fi1, jro0, gstore3, nx, pmaxino, p_os, jvalid2; as, gstore4)] ( fi.inos < jmaxino ∧ (jvalid1 ∧ nx ≠ [] → valid-journal-head(nx, gstore4, jro0)) ∧ fi.lebs ⊆ dom gstore4 ∧ refsize-cons(gstore4, range fi) ∧ inv(gstore4 \ jro0) ∧ dom gstore3 ∪ elems nx = dom gstore4 ∪ jro0 ∧ ri-inj(fi) ∧ gstore4 =○refsize gstore1 → ⟨aubifs_core_index_truncate#(key, n, fi1, jro1.keys, p_os.keys, nodes(gstore2 ↓, jro0), abs-log(nx, gstore1 ↓), jvalid3; ri)⟩ (fi = ri ∧ nodes(gstore2 ↓, jro0) = nodes(gstore1 ↓, jro0) ∧ (jvalid3 → jvalid2))), jmaxino = 0, pmaxino = 0, dups(nx) |
jvalid ↔ jvalid2, as = fi2[ks], fi = fi2 \ ks, fi0 = fi1, fi2 = ri, gstore = gstore3, gstore0 = gstore4, gstore1 = gstore4, jro = jro0, ks = datakeys(key, n, fi2), remove-refsize0(gstore3) = gstore3, elems nx ∩ jro0 = ∅, dom gstore3 ∪ elems nx = dom gstore4 ∪ jro0, p_os.keys.inodes?, jro1.keys.inodes?, ri.inos < jmaxino, jro1 < jmaxino, p_os < pmaxino, fi1.inos < pmaxino, inv(gstore3), inv(gstore4 \ jro0), log-cons(abs-log(nx, gstore4 ↓), nodes(gstore4 ↓, jro0)), refsize-cons(gstore4, range ri), refsize-cons(gstore3, range fi1), ri-inj(ri), ri-inj(fi1), pmaxino ≤ jmaxino, ri.lebs ⊆ dom gstore4, fi1.lebs ⊆ dom gstore3, jvalid3 → jvalid2, jvalid1 ∧ nx ≠ [] → valid-journal-head(nx, gstore4, jro0) ⊦ [gstore2 := gstore4; gjournal_remove_addresses#(jvalid1, fi, fi1, jro0, gstore3, nx, pmaxino, p_os, jvalid2; as, gstore4)] ( fi.inos < jmaxino ∧ (jvalid1 ∧ nx ≠ [] → valid-journal-head(nx, gstore4, jro0)) ∧ fi.lebs ⊆ dom gstore4 ∧ refsize-cons(gstore4, range fi) ∧ inv(gstore4 \ jro0) ∧ dom gstore3 ∪ elems nx = dom gstore4 ∪ jro0 ∧ ri-inj(fi) ∧ gstore4 =○refsize gstore1 → ⟨aubifs_core_index_truncate#(key, n, fi1, jro1.keys, p_os.keys, nodes(gstore2 ↓, jro0), abs-log(nx, gstore1 ↓), jvalid3; ri)⟩ (fi = ri ∧ nodes(gstore2 ↓, jro0) = nodes(gstore1 ↓, jro0) ∧ (jvalid3 → jvalid2))), jmaxino = 0, pmaxino = 0, dups(nx)