Step
*
1
2
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;[a / as@0]) 
⇒ (combine-list(x,y.f[x;y];as) = combine-list(x,y.f[x;y];[a / as@0]) ∈ A)
12. permutation(A;as;as@0 @ [a])
⊢ combine-list(x,y.f[x;y];as) = combine-list(x,y.f[x;y];as@0 @ [a]) ∈ A
BY
{ D (-2) }
1
.....antecedent..... 
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;[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])
12. combine-list(x,y.f[x;y];as) = combine-list(x,y.f[x;y];[a / as@0]) ∈ A
⊢ combine-list(x,y.f[x;y];as) = combine-list(x,y.f[x;y];as@0 @ [a]) ∈ A
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;[a  /  as@0])
{}\mRightarrow{}  (combine-list(x,y.f[x;y];as)  =  combine-list(x,y.f[x;y];[a  /  as@0]))
12.  permutation(A;as;as@0  @  [a])
\mvdash{}  combine-list(x,y.f[x;y];as)  =  combine-list(x,y.f[x;y];as@0  @  [a])
By
Latex:
D  (-2)
Home
Index