Step
*
1
1
2
1
1
1
of Lemma
free-word-inv-append1
1. X : Type
2. u : X + X@i
3. v : (X + X) List@i
4. λx,y. word-rel(X;x;y)^* (map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(v)) @ v) []
5. L : (X + X) List@i
6. map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(v)) = L ∈ ((X + X) List)
⊢ word-rel(X;(L @ [case u of inl(a) => inr a  | inr(a) => inl a]) @ [u / v];L @ v)
BY
{ (Unfold `word-rel` 0 THEN InstConcl [⌜case u of inl(a) => inr a  | inr(a) => inl a⌝;⌜u⌝;⌜L⌝;⌜v⌝]⋅ THEN Auto) }
1
1. X : Type
2. u : X + X@i
3. v : (X + X) List@i
4. λx,y. word-rel(X;x;y)^* (map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(v)) @ v) []
5. L : (X + X) List@i
6. map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(v)) = L ∈ ((X + X) List)
⊢ case u of inl(a) => inr a  | inr(a) => inl a = -u
2
1. X : Type
2. u : X + X@i
3. v : (X + X) List@i
4. λx,y. word-rel(X;x;y)^* (map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(v)) @ v) []
5. L : (X + X) List@i
6. map(λx.case x of inl(a) => inr a  | inr(a) => inl a;rev(v)) = L ∈ ((X + X) List)
7. case u of inl(a) => inr a  | inr(a) => inl a = -u
⊢ ((L @ [case u of inl(a) => inr a  | inr(a) => inl a]) @ [u / v])
= (L @ [case u of inl(a) => inr a  | inr(a) => inl a; u] @ v)
∈ ((X + X) List)
Latex:
Latex:
1.  X  :  Type
2.  u  :  X  +  X@i
3.  v  :  (X  +  X)  List@i
4.  \mlambda{}x,y.  word-rel(X;x;y)\^{}*  (map(\mlambda{}x.case  x  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a;rev(v))  @  v)  []
5.  L  :  (X  +  X)  List@i
6.  map(\mlambda{}x.case  x  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a;rev(v))  =  L
\mvdash{}  word-rel(X;(L  @  [case  u  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a])  @  [u  /  v];L  @  v)
By
Latex:
(Unfold  `word-rel`  0
  THEN  InstConcl  [\mkleeneopen{}case  u  of  inl(a)  =>  inr  a    |  inr(a)  =>  inl  a\mkleeneclose{};\mkleeneopen{}u\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{};\mkleeneopen{}v\mkleeneclose{}]\mcdot{}
  THEN  Auto)
Home
Index