Step
*
1
1
1
1
1
1
of Lemma
transitive-closure-map
1. A : Type
2. R : A ⟶ A ⟶ ℙ
3. f : A ⟶ A
4. g : ∀x,y:A.  ((R x y) 
⇒ (R (f x) (f y)))
5. x : A
6. y : A
7. L : (a:A × b:A × (R a b)) List
8. rel_path(A;L;x;y)
⊢ rel_path(A;map(λtr.let a,b,r = tr in 
                     <f a, f b, g a b r>L);f x;f y)
BY
{ ((Assert ⌜∀u:a:A × b:A × (R a b). ((fst(((λtr.let a,b,r = tr in <f a, f b, g a b r>) u))) = (f (fst(u))) ∈ A)⌝⋅
    THENA ((D 0 THENA Auto) THEN DProds THEN Reduce 0 THEN Auto)
    )
   THEN (Assert ⌜∀u:a:A × b:A × (R a b). ((fst(snd(((λtr.let a,b,r = tr in <f a, f b, g a b r>) u)))) = (f (fst(snd(u)))\000C) ∈ A)⌝⋅
         THENA ((D 0 THENA Auto) THEN DProds THEN Reduce 0 THEN Auto)
         )
   ) }
1
1. A : Type
2. R : A ⟶ A ⟶ ℙ
3. f : A ⟶ A
4. g : ∀x,y:A.  ((R x y) 
⇒ (R (f x) (f y)))
5. x : A
6. y : A
7. L : (a:A × b:A × (R a b)) List
8. rel_path(A;L;x;y)
9. ∀u:a:A × b:A × (R a b). ((fst(((λtr.let a,b,r = tr in <f a, f b, g a b r>) u))) = (f (fst(u))) ∈ A)
10. ∀u:a:A × b:A × (R a b). ((fst(snd(((λtr.let a,b,r = tr in <f a, f b, g a b r>) u)))) = (f (fst(snd(u)))) ∈ A)
⊢ rel_path(A;map(λtr.let a,b,r = tr in 
                     <f a, f b, g a b r>L);f x;f y)
Latex:
Latex:
1.  A  :  Type
2.  R  :  A  {}\mrightarrow{}  A  {}\mrightarrow{}  \mBbbP{}
3.  f  :  A  {}\mrightarrow{}  A
4.  g  :  \mforall{}x,y:A.    ((R  x  y)  {}\mRightarrow{}  (R  (f  x)  (f  y)))
5.  x  :  A
6.  y  :  A
7.  L  :  (a:A  \mtimes{}  b:A  \mtimes{}  (R  a  b))  List
8.  rel\_path(A;L;x;y)
\mvdash{}  rel\_path(A;map(\mlambda{}tr.let  a,b,r  =  tr  in 
                                          <f  a,  f  b,  g  a  b  r>L);f  x;f  y)
By
Latex:
((Assert  \mkleeneopen{}\mforall{}u:a:A  \mtimes{}  b:A  \mtimes{}  (R  a  b).  ((fst(((\mlambda{}tr.let  a,b,r  =  tr  in  <f  a,  f  b,  g  a  b  r>)  u)))  =  (f  (fst(\000Cu))))\mkleeneclose{}\mcdot{}
    THENA  ((D  0  THENA  Auto)  THEN  DProds  THEN  Reduce  0  THEN  Auto)
    )
  THEN  (Assert  \mkleeneopen{}\mforall{}u:a:A  \mtimes{}  b:A  \mtimes{}  (R  a  b)
                                  ((fst(snd(((\mlambda{}tr.let  a,b,r  =  tr  in  <f  a,  f  b,  g  a  b  r>)  u))))  =  (f  (fst(snd(u)))))\mkleeneclose{}\mcdot{}
              THENA  ((D  0  THENA  Auto)  THEN  DProds  THEN  Reduce  0  THEN  Auto)
              )
  )
Home
Index