Step * 1 of Lemma combine-list-permutation


1. Type
2. A ⟶ A ⟶ A
3. Assoc(A;λx,y. f[x;y])
4. Comm(A;λx,y. f[x;y])
5. as List
6. bs List
7. 0 < ||as||
8. permutation(A;as;bs)
⊢ combine-list(x,y.f[x;y];as) combine-list(x,y.f[x;y];bs) ∈ A
BY
(InstLemma `permutation-invariant` [⌜A⌝;⌜λ2bs.permutation(A;as;bs)
                                            (combine-list(x,y.f[x;y];as) combine-list(x,y.f[x;y];bs) ∈ A)⌝]⋅
   THENA Auto'
   }

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

2
1. Type
2. A ⟶ A ⟶ A
3. Assoc(A;λx,y. f[x;y])
4. Comm(A;λx,y. f[x;y])
5. as List
6. bs List
7. 0 < ||as||
8. permutation(A;as;bs)
9. as@0 List
10. 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

3
1. Type
2. A ⟶ A ⟶ A
3. Assoc(A;λx,y. f[x;y])
4. Comm(A;λx,y. f[x;y])
5. as List
6. bs List
7. 0 < ||as||
8. permutation(A;as;bs)
9. as@0 List
10. a1 A
11. a2 A
12. permutation(A;as;[a1; [a2 as@0]])
 (combine-list(x,y.f[x;y];as) combine-list(x,y.f[x;y];[a1; [a2 as@0]]) ∈ A)
13. permutation(A;as;[a2; [a1 as@0]])
⊢ combine-list(x,y.f[x;y];as) combine-list(x,y.f[x;y];[a2; [a1 as@0]]) ∈ A

4
1. Type
2. A ⟶ A ⟶ A
3. Assoc(A;λx,y. f[x;y])
4. Comm(A;λx,y. f[x;y])
5. as List
6. bs List
7. 0 < ||as||
8. permutation(A;as;bs)
9. ∀as@0,bs:A List.
     (permutation(A;as@0;bs)
      (permutation(A;as;as@0)  (combine-list(x,y.f[x;y];as) combine-list(x,y.f[x;y];as@0) ∈ A)
        ⇐⇒ permutation(A;as;bs)  (combine-list(x,y.f[x;y];as) combine-list(x,y.f[x;y];bs) ∈ A)))
⊢ combine-list(x,y.f[x;y];as) combine-list(x,y.f[x;y];bs) ∈ 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)
\mvdash{}  combine-list(x,y.f[x;y];as)  =  combine-list(x,y.f[x;y];bs)


By


Latex:
(InstLemma  `permutation-invariant`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}bs.permutation(A;as;bs)
                                                                                  {}\mRightarrow{}  (combine-list(x,y.f[x;y];as)
                                                                                        =  combine-list(x,y.f[x;y];bs))\mkleeneclose{}]\mcdot{}
  THENA  Auto'
  )




Home Index