Step * of Lemma stream-lex-monotonic

T:Type
  ((∀x,y:T.  Dec(x y ∈ T))
   (∀R:T ⟶ T ⟶ ℙ
        (Trans(T;x,y.x y)
         AntiSym(T;x,y.x y)
         (∀f:T ⟶ T ⟶ T
              ((∀x,y,u,v:T.  ((x y)  (u v)  ((f u) (f v))))
               (∀x,y,u,v:T.  ((x y)  (u v)  ((x y ∈ T) ∧ (u v ∈ T)))  ((f u) (f v) ∈ T))))
               (∀a,b,c,d:stream(T).
                    ((a stream-lex(T;R) b)
                     (c stream-lex(T;R) d)
                     (stream-zip(f;a;c) stream-lex(T;R) stream-zip(f;b;d)))))))))
BY
(Auto
   THEN ((InstLemma `implies-bigrel` [⌜stream(T)⌝;⌜λ2lex.λs1,s2. ((s-hd(s1) s-hd(s2))
                                                                ∧ ((s-hd(s1) s-hd(s2) ∈ T)
                                                                   (s-tl(s1) lex s-tl(s2))))⌝]⋅
         THENM Fold `stream-lex` (-1)
         )
         THENA (Auto THEN RepUR ``rel-monotone rel_implies`` THEN Auto)
         )
   }

1
1. Type
2. ∀x,y:T.  Dec(x y ∈ T)
3. T ⟶ T ⟶ ℙ
4. Trans(T;x,y.x y)
5. AntiSym(T;x,y.x y)
6. T ⟶ T ⟶ T
7. ∀x,y,u,v:T.  ((x y)  (u v)  ((f u) (f v)))
8. ∀x,y,u,v:T.  ((x y)  (u v)  ((x y ∈ T) ∧ (u v ∈ T)))  ((f u) (f v) ∈ T)))
9. stream(T)
10. stream(T)
11. stream(T)
12. stream(T)
13. stream-lex(T;R) b
14. stream-lex(T;R) d
15. ∀R':stream(T) ⟶ stream(T) ⟶ ℙ
      (R' => λs1,s2. ((s-hd(s1) s-hd(s2)) ∧ ((s-hd(s1) s-hd(s2) ∈ T)  (s-tl(s1) R' s-tl(s2))))  R' => stream-lex\000C(T;R))
⊢ stream-zip(f;a;c) stream-lex(T;R) stream-zip(f;b;d)


Latex:


Latex:
\mforall{}T:Type
    ((\mforall{}x,y:T.    Dec(x  =  y))
    {}\mRightarrow{}  (\mforall{}R:T  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbP{}
                (Trans(T;x,y.x  R  y)
                {}\mRightarrow{}  AntiSym(T;x,y.x  R  y)
                {}\mRightarrow{}  (\mforall{}f:T  {}\mrightarrow{}  T  {}\mrightarrow{}  T
                            ((\mforall{}x,y,u,v:T.    ((x  R  y)  {}\mRightarrow{}  (u  R  v)  {}\mRightarrow{}  ((f  x  u)  R  (f  y  v))))
                            {}\mRightarrow{}  (\mforall{}x,y,u,v:T.
                                        ((x  R  y)  {}\mRightarrow{}  (u  R  v)  {}\mRightarrow{}  (\mneg{}((x  =  y)  \mwedge{}  (u  =  v)))  {}\mRightarrow{}  (\mneg{}((f  x  u)  =  (f  y  v)))))
                            {}\mRightarrow{}  (\mforall{}a,b,c,d:stream(T).
                                        ((a  stream-lex(T;R)  b)
                                        {}\mRightarrow{}  (c  stream-lex(T;R)  d)
                                        {}\mRightarrow{}  (stream-zip(f;a;c)  stream-lex(T;R)  stream-zip(f;b;d)))))))))


By


Latex:
(Auto
  THEN  ((InstLemma  `implies-bigrel`  [\mkleeneopen{}stream(T)\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{}
              THENM  Fold  `stream-lex`  (-1)
              )
              THENA  (Auto  THEN  RepUR  ``rel-monotone  rel\_implies``  0  THEN  Auto)
              )
  )




Home Index