Step
*
1
1
2
1
2
of Lemma
free-word-inv-append2
1. X : Type
2. ys : (X + X) List@i
3. y : X + X@i
4. λx,y. word-rel(X;x;y)^* (ys @ map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(ys))) []
5. L : (X + X) List@i
6. map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(ys)) = L ∈ ((X + X) List)
7. y = -case y of inl(a) => inr a  | inr(a) => inl a
⊢ ((ys @ [y]) @ [case y of inl(a) => inr a  | inr(a) => inl a / L])
= (ys @ [y; case y of inl(a) => inr a  | inr(a) => inl a] @ L)
∈ ((X + X) List)
BY
{ ((RWW  "append_assoc_sq" 0 THEN Reduce 0) THEN Auto) }
Latex:
Latex:
1.  X  :  Type
2.  ys  :  (X  +  X)  List@i
3.  y  :  X  +  X@i
4.  \mlambda{}x,y.  word-rel(X;x;y)\^{}*  (ys  @  map(\mlambda{}x.case  x  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a;rev(ys)))  []
5.  L  :  (X  +  X)  List@i
6.  map(\mlambda{}x.case  x  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a;rev(ys))  =  L
7.  y  =  -case  y  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a
\mvdash{}  ((ys  @  [y])  @  [case  y  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a  /  L])
=  (ys  @  [y;  case  y  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a]  @  L)
By
Latex:
((RWW    "append\_assoc\_sq"  0  THEN  Reduce  0)  THEN  Auto)
Home
Index