| mon<(nσ) → (nσ = [] ⊃ min(nσ, nσ[n]) = 0 ;(# nσ ≠ ∞ ∧ nσ[(# nσ).n - 1] < nσ[n] ⊃ min(nσ, nσ[n]) = (# nσ).n ;⌜min(nσ, nσ[n])⌝ < # nσ ∧ nσ[n] ≤ nσ[min(nσ, nσ[n])] ∧ (∀ m. ⌜m⌝ < # nσ ∧ nσ[n] ≤ nσ[m] → min(nσ, nσ[n]) ≤ m) ) ), mon<(nσ), ⌜n⌝ < # nσ ⊦ min(nσ, nσ[n]) = n |
⌜n⌝ < # nσ, mon<(nσ), (# nσ ≠ ∞ ∧ nσ[(# nσ).n - 1] < nσ[n] ⊃ min(nσ, nσ[n]) = (# nσ).n ;⌜min(nσ, nσ[n])⌝ < # nσ ∧ nσ[n] ≤ nσ[min(nσ, nσ[n])] ∧ (∀ m. ⌜m⌝ < # nσ ∧ nσ[n] ≤ nσ[m] → min(nσ, nσ[n]) ≤ m) ) ⊦ min(nσ, nσ[n]) = n, nσ = []
Used simplifier rules: min-empty: ⊦ min([], n) = 0;%zero-01: ⊦ ¬ m < 0; from specification nat-basic1%less-fin: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; from specification nat-inf%size-empty: ⊦ # [] = ⌜0⌝ ; from specification stream[natstream]