| gstore2[adr.lnum] = groupblock(gndx, lax, 0), remove-refsize0(gstore1) = gstore1, elems nx ∩ jro0 = ∅, dom gstore1 ∪ elems nx = jro0 ∪ dom gstore2, jro1.keys.inodes?, p_os.keys.inodes?, fi1.inos < pmaxino, p_os < pmaxino, jro1 < jmaxino, ri.inos < jmaxino, inv(gstore2 \ jro0), inv(gstore1), log-cons(abs-log(nx, gstore2 ↓), nodes(gstore2 ↓, jro0)), refsize-cons(gstore2 -- adr.lnum, range ri), refsize-cons(gstore1, range fi1), refsize-cons(gstore2, range ri), ri-cons(ri, nodes(gstore2 ↓, jro0)), ri-inj(fi1), ri-inj(ri), adr.lnum ∈ gstore1, adr ∈ ri, adr.lnum ∈ jro0 ∪ dom gstore2, adr ∈ nodes(gstore2 ↓, jro0), adr.lnum ∈ gstore2, pmaxino ≤ jmaxino, fi1.lebs ⊆ dom gstore1, ri.lebs ⊆ dom gstore2, jvalid3 ∧ nx ≠ [] → valid-journal-head(nx, gstore2 -- adr.lnum, jro0 ++ adr.lnum), jvalid3 ∧ nx ≠ [] → valid-journal-head(nx, gstore2, jro0), jvalid5 → jvalid0 ⊦ #((dom nodes(gstore2 ↓, jro0) | adr.lnum) ∩ range ri) = 0, #(jro0 ∪ dom gstore2) = 0, jmaxino = 0, pmaxino = 0, (dom nodes(gstore2 ↓, jro0) | adr.lnum) ∩ range ri = ∅, jro0 ∪ dom gstore2 = ∅, dups(nx), adr.lnum ∈ nx, ∃ adr0. adr0.lnum = adr.lnum ∧ adr0 ∈ ri |
Used simplifier rules: ⊦ gstore[n] = groupblock(gndx, lax, 0) ∧ n ∈ gstore ∧ ri-cons(ri, nodes(gstore ↓, ginval)) ∧ refsize-cons(gstore, range ri) ∧ inv(gstore \ ginval) → ¬ @(n, m0, m1) ∈ ri; (s)% ⊦ (m = adr.lnum ∧ m0 = adr.pos) ∧ m1 = adr.size ↔ adr = @(m, m0, m1); (elim) Used terms: adr, m, m0, m1