| n < # kar, m0 < # kar, n ≤ m0, ∀ n, kar, ki. n < m0 ∧ n < # kar ∧ m0 ≤ # kar → keyset(kar[n, ki], m0) ++ kar[n] = keyset(kar, m0) ++ ki ⊦ keyset(kar[n, ki], m0) ++ kar[n, ki][m0] ++ kar[n] = keyset(kar, m0) ++ kar[m0] ++ ki |
m0 < # kar, n < # kar, n ≤ m0, ∀ n, kar, ki. n < m0 ∧ n < # kar ∧ m0 ≤ # kar → keyset(kar[n, ki], m0) ++ kar[n] = keyset(kar, m0) ++ ki ⊦ keyset(kar[n, ki], m0) ++ kar[n, ki][m0] ++ kar[n] = keyset(kar, m0) ++ kar[m0] ++ ki, m0 = n
Used simplifier rules: key-set-write-other: m ≤ n, n < # kar ⊦ keyset(kar[n, ki], m) = keyset(kar, m);% ⊦ m ≤ n → (n ≤ m ↔ m = n); (s)% ⊦ m < # kar → kar[m, ki][m] = ki; (s)% ⊦ s ++ ki ++ ki0 = s ++ ki0 ++ ki ↔ true; (s) Used formulas: m0 = n