| ¬ # ⌜nf⌝ < ⌜n⌝ → (⌜x0⌝ = ⌜nf⌝ to n ∧ ⌜nf0⌝ = ⌜nf⌝ from n ↔ ⌜nf⌝ = ⌜x0⌝ + ⌜nf0⌝ ∧ # ⌜x0⌝ = ⌜n⌝ ) ⊦ x0 = nf to n ∧ nf0 = nf from n ↔ nf = (⌜x0⌝ + ⌜nf0⌝ ).f ∧ # x0 = n |
x0 = nf to n ∧ nf0 = nf from n ↔ ⌜nf⌝ = ⌜x0⌝ + ⌜nf0⌝ ∧ # x0 = n ⊦ x0 = nf to n ∧ nf0 = nf from n ↔ nf = (⌜x0⌝ + ⌜nf0⌝ ).f ∧ # x0 = n
Used simplifier rules: size-inf: ⊦ # ⌜nf⌝ = ∞;%to-inf: ⊦ ⌜nf⌝ to n = ⌜nf to n⌝ ;%from-inf: ⊦ ⌜nf⌝ from n = ⌜nf from n⌝ ;%size-fin: ⊦ # ⌜x⌝ = ⌜# x⌝ ;%inj: ⊦ ⌜m⌝ = ⌜m0⌝ ↔ m = m0; from specification nat-inf-basic%inj-01: ⊦ ⌜nf⌝ = ⌜nf0⌝ ↔ nf = nf0; from specification stream-basic%inj-02: ⊦ ⌜x⌝ = ⌜x0⌝ ↔ x = x0; from specification stream-basic%less-inf1: ⊦ ¬ ∞ < n∞; from specification nat-inf