Step
*
of Lemma
stream-lex_transitivity
∀T:Type. ∀R:T ⟶ T ⟶ ℙ. (Trans(T;x,y.x R y)
⇒ AntiSym(T;x,y.x R y)
⇒ Trans(stream(T);s1,s2.s1 stream-lex(T;R) s2))
BY
{ (Auto
THEN Unfold `stream-lex` 0
THEN InstLemma `bigrel-induction` [⌜stream(T)⌝;⌜λ2R.Trans(stream(T);s1,s2.s1 R s2)⌝;⌜λ2lex.λs1,s2. ((s-hd(s1)
R
s-hd(s2))
∧ ((s-hd(s1)
= s-hd(s2)
∈ T)
⇒ (s-tl(s1)
lex
s-tl(s2))))⌝]\000C ⋅
THEN Auto
THEN Reduce 0) }
1
1. T : Type
2. R : T ⟶ T ⟶ ℙ
3. Trans(T;x,y.x R y)
4. AntiSym(T;x,y.x R y)
5. Rs : ℕ ⟶ stream(T) ⟶ stream(T) ⟶ ℙ
6. ∀n:ℕ. Trans(stream(T);s1,s2.s1 Rs[n] s2)
⊢ Trans(stream(T);s1,s2.s1 isect-rel(ℕ;n.Rs[n]) s2)
2
1. T : Type
2. R : T ⟶ T ⟶ ℙ
3. Trans(T;x,y.x R y)
4. AntiSym(T;x,y.x R y)
5. R@0 : stream(T) ⟶ stream(T) ⟶ ℙ
6. Trans(stream(T);s1,s2.s1 R@0 s2)
⊢ Trans(stream(T);s1,s2.(s-hd(s1) R s-hd(s2)) ∧ ((s-hd(s1) = s-hd(s2) ∈ T)
⇒ (s-tl(s1) R@0 s-tl(s2))))
3
1. T : Type
2. R : T ⟶ T ⟶ ℙ
3. Trans(T;x,y.x R y)
4. AntiSym(T;x,y.x R y)
⊢ Trans(stream(T);s1,s2.True)
Latex:
Latex:
\mforall{}T:Type. \mforall{}R:T {}\mrightarrow{} T {}\mrightarrow{} \mBbbP{}.
(Trans(T;x,y.x R y) {}\mRightarrow{} AntiSym(T;x,y.x R y) {}\mRightarrow{} Trans(stream(T);s1,s2.s1 stream-lex(T;R) s2))
By
Latex:
(Auto
THEN Unfold `stream-lex` 0
THEN InstLemma `bigrel-induction` [\mkleeneopen{}stream(T)\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}R.Trans(stream(T);s1,s2.s1 R s2)\mkleeneclose{};
\mkleeneopen{}\mlambda{}\msubtwo{}lex.\mlambda{}s1,s2. ((s-hd(s1) R s-hd(s2)) \mwedge{} ((s-hd(s1) = s-hd(s2)) {}\mRightarrow{} (s-tl(s1) lex s-tl(s2))))\mkleeneclose{}] \mcdot{}
THEN Auto
THEN Reduce 0)
Home
Index