| mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ ∃ σ1. σσ[m] + σ1 = σσ[n] |
∀ n, m, σσ. m1 = n - m ∧ mon(σσ) ∧ m ≤ n ∧ ⌜n⌝ < # σσ → (∃ σ1. σσ[m] + σ1 = σσ[n]), m1 +1 = n - m, mon(σσ), m ≤ n, ⌜n⌝ < # σσ ⊦ ∃ σ1. σσ[m] + σ1 = σσ[n]
Used simplifier rules: nat freely generated by 0, +1;;%zero-02: ⊦ m ≤ n → (n - m = 0 ↔ n = m); from specification nat%ler: ⊦ m ≤ m; from specification nat%appendend-equal: ⊦ σ + σ0 = σ ↔ ¬ ¬(σ0 = [] ∨ # σ = ∞); from specification stream%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2; from specification stream