Step
*
of Lemma
stream-extensionality
∀[A:Type]. ∀[x,y:stream(A)]. x = y ∈ stream(A) supposing ∀n:ℕ. (s-nth(n;x) = s-nth(n;y) ∈ A)
BY
{ (Auto THEN InstLemma `stream-coinduction` [⌜A⌝;⌜λ2x y.∀n:ℕ. (s-nth(n;x) = s-nth(n;y) ∈ A)⌝]⋅ THEN Auto) }
1
1. A : Type
2. x : stream(A)
3. y : stream(A)
4. ∀n:ℕ. (s-nth(n;x) = s-nth(n;y) ∈ A)
5. x1 : stream(A)
6. y1 : stream(A)
7. ∀n:ℕ. (s-nth(n;x1) = s-nth(n;y1) ∈ A)
⊢ s-hd(x1) = s-hd(y1) ∈ A
2
1. A : Type
2. x : stream(A)
3. y : stream(A)
4. ∀n:ℕ. (s-nth(n;x) = s-nth(n;y) ∈ A)
5. x1 : stream(A)
6. y1 : stream(A)
7. ∀n:ℕ. (s-nth(n;x1) = s-nth(n;y1) ∈ A)
8. s-hd(x1) = s-hd(y1) ∈ A
9. n : ℕ
⊢ s-nth(n;s-tl(x1)) = s-nth(n;s-tl(y1)) ∈ A
Latex:
Latex:
\mforall{}[A:Type]. \mforall{}[x,y:stream(A)]. x = y supposing \mforall{}n:\mBbbN{}. (s-nth(n;x) = s-nth(n;y))
By
Latex:
(Auto THEN InstLemma `stream-coinduction` [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}x y.\mforall{}n:\mBbbN{}. (s-nth(n;x) = s-nth(n;y))\mkleeneclose{}]\mcdot{} THEN Auto)
Home
Index