Step * 1 2 1 1 of Lemma combine-list-permutation


1. A : Type
2. f : A ⟶ A ⟶ A
3. Assoc(A;λx,y. f[x;y])
4. Comm(A;λx,y. f[x;y])
5. as : A List
6. bs : A List
7. 0 < ||as||
8. permutation(A;as;bs)
9. as@0 : A List
10. a : A
11. permutation(A;as;as@0 @ [a])
⊢ permutation(A;as@0 @ [a];[a / as@0])
BY
{ Subst ⌜[a / as@0] ~ [a] @ as@0⌝ 0⋅ }

1
.....equality..... 
1. A : Type
2. f : A ⟶ A ⟶ A
3. Assoc(A;λx,y. f[x;y])
4. Comm(A;λx,y. f[x;y])
5. as : A List
6. bs : A List
7. 0 < ||as||
8. permutation(A;as;bs)
9. as@0 : A List
10. a : A
11. permutation(A;as;as@0 @ [a])
⊢ [a / as@0] ~ [a] @ as@0

2
1. A : Type
2. f : A ⟶ A ⟶ A
3. Assoc(A;λx,y. f[x;y])
4. Comm(A;λx,y. f[x;y])
5. as : A List
6. bs : A List
7. 0 < ||as||
8. permutation(A;as;bs)
9. as@0 : A List
10. a : A
11. permutation(A;as;as@0 @ [a])
⊢ permutation(A;as@0 @ [a];[a] @ as@0)


Latex:


Latex:

1.  A  :  Type
2.  f  :  A  {}\mrightarrow{}  A  {}\mrightarrow{}  A
3.  Assoc(A;\mlambda{}x,y.  f[x;y])
4.  Comm(A;\mlambda{}x,y.  f[x;y])
5.  as  :  A  List
6.  bs  :  A  List
7.  0  <  ||as||
8.  permutation(A;as;bs)
9.  as@0  :  A  List
10.  a  :  A
11.  permutation(A;as;as@0  @  [a])
\mvdash{}  permutation(A;as@0  @  [a];[a  /  as@0])


By


Latex:
Subst  \mkleeneopen{}[a  /  as@0]  \msim{}  [a]  @  as@0\mkleeneclose{}  0\mcdot{}




Home Index