Step
*
1
1
of Lemma
transitive-closure-symmetric
1. [A] : Type
2. [R] : A ⟶ A ⟶ ℙ
3. s : ∀a,b:A.  ((R a b) 
⇒ (R b a))
4. a : A
5. b : A
6. L : (a:A × b:A × (R a b)) List
7. [%1] : rel_path(A;L;a;b) ∧ 0 < ||L||
8. λt.let a,b,r = t in 
      <b, a, s a b r> ∈ (a:A × b:A × (R a b)) ⟶ (a:A × b:A × (R a b))
⊢ {L:(a:A × b:A × (R a b)) List| rel_path(A;L;b;a) ∧ 0 < ||L||} 
BY
{ ((UseWitness ⌜map(λt.let a,b,r = t in <b, a, s a b r>rev(L))⌝⋅ THEN MemTypeCD THEN Auto) THEN PromoteHyp (-1) 4) }
1
1. A : Type
2. R : A ⟶ A ⟶ ℙ
3. s : ∀a,b:A.  ((R a b) 
⇒ (R b a))
4. λt.let a,b,r = t in 
      <b, a, s a b r> ∈ (a:A × b:A × (R a b)) ⟶ (a:A × b:A × (R a b))
5. a : A
6. b : A
7. L : (a:A × b:A × (R a b)) List
8. rel_path(A;L;a;b)
9. 0 < ||L||
⊢ rel_path(A;map(λt.let a,b,r = t in 
                    <b, a, s a b r>rev(L));b;a)
Latex:
Latex:
1.  [A]  :  Type
2.  [R]  :  A  {}\mrightarrow{}  A  {}\mrightarrow{}  \mBbbP{}
3.  s  :  \mforall{}a,b:A.    ((R  a  b)  {}\mRightarrow{}  (R  b  a))
4.  a  :  A
5.  b  :  A
6.  L  :  (a:A  \mtimes{}  b:A  \mtimes{}  (R  a  b))  List
7.  [\%1]  :  rel\_path(A;L;a;b)  \mwedge{}  0  <  ||L||
8.  \mlambda{}t.let  a,b,r  =  t  in 
            <b,  a,  s  a  b  r>  \mmember{}  (a:A  \mtimes{}  b:A  \mtimes{}  (R  a  b))  {}\mrightarrow{}  (a:A  \mtimes{}  b:A  \mtimes{}  (R  a  b))
\mvdash{}  \{L:(a:A  \mtimes{}  b:A  \mtimes{}  (R  a  b))  List|  rel\_path(A;L;b;a)  \mwedge{}  0  <  ||L||\} 
By
Latex:
((UseWitness  \mkleeneopen{}map(\mlambda{}t.let  a,b,r  =  t  in  <b,  a,  s  a  b  r>rev(L))\mkleeneclose{}\mcdot{}  THEN  MemTypeCD  THEN  Auto)  THEN  Promo\000CteHyp  (-1)  4)
Home
Index