| n1 + 1 < # kar, n1 < # kar, n0 < # kar, n1 < n0, ∀ n1, n, kar. n1 < n0 ∧ n < n0 ∧ n1 < # kar ∧ n < # kar ∧ n0 ≤ # kar → keyset(kar[n, kar[n1]][n1, kar[n]], n0) = keyset(kar, n0) ⊦ keyset(kar[n0, kar[n1]][n1, kar[n0]], n0) ++ kar[n1] = keyset(kar, n0) ++ kar[n0], n0 = n1 |
m ≠ n ⊦ kar[m, ki][n, ki0] = kar[n, ki0][m, ki]
Used simplifier rules: key-set-write-other: m ≤ n, n < # kar ⊦ keyset(kar[n, ki], m) = keyset(kar, m);%keyset-overwrite-add: m ≤ # kar ⊦ n < m → keyset(kar[n, ki], m) ++ kar[n] = keyset(kar, m) ++ ki;% ⊦ m ≤ m; (s)% ⊦ # kar[n, ki] = # kar; (s)% ⊦ m < n → m ≤ n; (s) Used terms: kar[n0], n1, kar[n1], n0, kar