Step
*
1
of Lemma
free-word-inv-append1
1. X : Type
2. (X + X) List ∈ Type
3. ∀w1,w2:(X + X) List.  (word-equiv(X;w1;w2) ∈ Type)
4. ∀w1:(X + X) List. word-equiv(X;w1;w1)
5. EquivRel((X + X) List;w1,w2.word-equiv(X;w1;w2))
6. w1 : (X + X) List@i
7. w2 : (X + X) List@i
8. word-equiv(X;w1;w2)
9. free-word(X) = free-word(X) ∈ Type
10. ∀w:(X + X) List. (free-word-inv(w) ∈ (X + X) List)
⊢ λx,y. word-rel(X;x;y)^* (free-word-inv(w1) @ w1) []
BY
{ (All Thin THEN Unfold `free-word-inv` 0) }
1
1. X : Type
2. w1 : (X + X) List@i
⊢ λx,y. word-rel(X;x;y)^* (map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(w1)) @ w1) []
Latex:
Latex:
1.  X  :  Type
2.  (X  +  X)  List  \mmember{}  Type
3.  \mforall{}w1,w2:(X  +  X)  List.    (word-equiv(X;w1;w2)  \mmember{}  Type)
4.  \mforall{}w1:(X  +  X)  List.  word-equiv(X;w1;w1)
5.  EquivRel((X  +  X)  List;w1,w2.word-equiv(X;w1;w2))
6.  w1  :  (X  +  X)  List@i
7.  w2  :  (X  +  X)  List@i
8.  word-equiv(X;w1;w2)
9.  free-word(X)  =  free-word(X)
10.  \mforall{}w:(X  +  X)  List.  (free-word-inv(w)  \mmember{}  (X  +  X)  List)
\mvdash{}  \mlambda{}x,y.  word-rel(X;x;y)\^{}*  (free-word-inv(w1)  @  w1)  []
By
Latex:
(All  Thin  THEN  Unfold  `free-word-inv`  0)
Home
Index