0specs/suffix/proofs/3584439283
suffixn ≤ # ar ⊦ suffix(ar, n) = subarray(ar, n, # ar - n)
00suffix-proofsuffix-proof-infolocalsimp
lexicographic⊦
ar0 < ar1
↔ (∃ n. n ≤ # ar0 ∧ n ≤ # ar1 ∧ subarray(ar0, 0, n) = subarray(ar1, 0, n) ∧ (# ar0 = n → # ar1 > n) ∧ (# ar0 ≠ n → # ar1 ≠ n ∧ ar0[n] < ar1[n]))
00lexicographic-prooflexicographic-proof-infolocalsimp
array-exists-first-neq ⊦ ∃ n. n ≤ # ar0 ∧ n ≤ # ar1 ∧ subarray(ar0, 0, n) = subarray(ar1, 0, n) ∧ (n ≠ # ar0 ∧ n ≠ # ar1 → ar0[n] ≠ ar1[n])
ls-at-subarray
1128array-exists-first-neq-proofarray-exists-first-neq-proof-info
lexicographic-emparray ⊦ ar < mkarray(0) ↔ false
lexicographic
01lexicographic-emparray-prooflexicographic-emparray-proof-infosimp
lexicographic-irrefl ⊦ ¬ ar < ar
lexicographic
01lexicographic-irrefl-prooflexicographic-irrefl-proof-infosimplocalsimp
lexicographic-suffix-next ⊦ n0 < # ar ∧ n1 < # ar → (suffix(ar, n0) < suffix(ar, n1) ↔ ar[n0] < ar[n1] ∨ suffix(ar, n0 + 1) < suffix(ar, n1 + 1) ∧ ar[n0] = ar[n1])
ls-at-subarraylexicographicsuffix
2659lexicographic-suffix-next-prooflexicographic-suffix-next-proof-info
lexicographic-total ⊦ ¬ ar0 < ar1 ∧ ¬ ar1 < ar0 → ar0 = ar1
array-exists-first-neqlexicographic
310lexicographic-total-prooflexicographic-total-proof-infoforward
lexicographic-trans ⊦ ar0 < ar1 ∧ ar1 < ar2 → ar0 < ar2
ls-at-subarraylexicographic
977lexicographic-trans-prooflexicographic-trans-proof-info
ls-at-subarrayn < m1, m0 + m1 ≤ # ar ⊦ (subarray(ar, m0, m1)[n]) = ar[m0 + n]
01ls-at-subarray-proofls-at-subarray-proof-infolocalsimp
suffix-end ⊦ suffix(ar, # ar) = mkarray(0)
suffix
01suffix-end-proofsuffix-end-proof-infosimp
suffix-samen0 ≤ # ar, n1 ≤ # ar ⊦ suffix(ar, n0) = suffix(ar, n1) ↔ n0 = n1
ls-at-subarraysuffix
16suffix-same-proofsuffix-same-proof-infosimp
0