| ⌜m⌝ = # σ, mon(σσ), ∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ), ∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ0), ∀ m. ¬ # σ < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σ to m) + σ1 = σσ[n])), ∀ m. ¬ # σ0 < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σ0 to m) + σ1 = σσ[n])) ⊦ ⌜m⌝ < # σ0, ⌜m⌝ = # σ0, σσ = [] |
⌜m0⌝ = # σ0, ⌜m⌝ = # σ, mon(σσ), ∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ), ∀ n. ⌜n⌝ < # σσ → (∃ σ1. σσ[n] + σ1 = σ0), ∀ m. ¬ # σ < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σ to m) + σ1 = σσ[n])), ∀ m. ¬ # σ0 < ⌜m⌝ → (∃ n. ⌜n⌝ < # σσ ∧ (∃ σ1. (σ0 to m) + σ1 = σσ[n])) ⊦ ⌜m⌝ < # σ0, ⌜m⌝ = # σ0, σσ = []
Used simplifier rules: natinf freely generated by ∞, ⌜ ⌝;;%disj: ⊦ ⌜m⌝ ≠ ∞; from specification nat-inf-basic%less-inf2: ⊦ ⌜m⌝ < ∞; from specification nat-inf