 
   A:Type, P:(A
A:Type, P:(A
 A
A
 Prop).
Prop).
 (Sym x,y:A. P(x,y))
  (Sym x,y:A. P(x,y)) 
 (Sym L1,L2:A List. L1 swap adjacent[P(x,y)] L2)
 (Sym L1,L2:A List. L1 swap adjacent[P(x,y)] L2)| By: | THEN FwdThru Thm: swapped select [-1] | 
| 1 | 2. P : A   A   Prop 3.  a,b:A. P(a,b)   P(b,a) 4. a : A List 5. b : A List 6. i :  (||a||-1) 7. P(a[i],a[(i+1)]) 8. b = swap(a;i;i+1) 9. b[i] = a[(i+1)] 10. b[(i+1)] = a[i] 11. ||b|| = ||a||     12. a = swap(b;i;i+1) 13.  x:  ||b||.  x = i     x = i+1   b[x] = a[x]  P(b[i],b[(i+1)])  | 1 step | 
About:
|  |  |  |  |  |  |  |  |  |  |  |