Step
*
1
2
1
of Lemma
quicksort_wf
1. T : Type
2. cmp : comparison(T)
3. valueall-type(T)
4. n : ℕ
5. L : T List@i
6. ∀L1:T List
     (||L1|| < ||L|| 
⇒ (quicksort(cmp;L1) ∈ {srtd:T List| sorted-by(λx,y. (0 ≤ (cmp x y));srtd) ∧ permutation(T;srtd;L1\000C)} ))
7. ¬(L = [] ∈ (T List))
⊢ quicksort(cmp;filter(λz.0 <z cmp z hd(L);L))
  @ filter(λz.(0 =z cmp hd(L) z);L)
  @ quicksort(cmp;filter(λz.0 <z cmp hd(L) z;L)) ∈ {srtd:T List| 
                                                    sorted-by(λx,y. (0 ≤ (cmp x y));srtd) ∧ permutation(T;srtd;L)} 
BY
{ TACTIC:((Assert ||L|| ≥ 1  BY
                 (DVar `L' THEN All Reduce THEN Auto' THEN D -1 THEN Auto))
          THEN ((InstHyp [⌜filter(λz.0 <z cmp z hd(L);L)⌝] (-3)⋅
                THENM (InstHyp [⌜filter(λz.0 <z cmp hd(L) z;L)⌝] (-4)⋅ THENA Auto)⋅
                )
                THENA Auto
                )
          ) }
1
.....antecedent..... 
1. T : Type
2. cmp : comparison(T)
3. valueall-type(T)
4. n : ℕ
5. L : T List@i
6. ∀L1:T List
     (||L1|| < ||L|| 
⇒ (quicksort(cmp;L1) ∈ {srtd:T List| sorted-by(λx,y. (0 ≤ (cmp x y));srtd) ∧ permutation(T;srtd;L1\000C)} ))
7. ¬(L = [] ∈ (T List))
8. ||L|| ≥ 1 
⊢ ||filter(λz.0 <z cmp z hd(L);L)|| < ||L||
2
.....antecedent..... 
1. T : Type
2. cmp : comparison(T)
3. valueall-type(T)
4. n : ℕ
5. L : T List@i
6. ∀L1:T List
     (||L1|| < ||L|| 
⇒ (quicksort(cmp;L1) ∈ {srtd:T List| sorted-by(λx,y. (0 ≤ (cmp x y));srtd) ∧ permutation(T;srtd;L1\000C)} ))
7. ¬(L = [] ∈ (T List))
8. ||L|| ≥ 1 
9. quicksort(cmp;filter(λz.0 <z cmp z hd(L);L)) ∈ {srtd:T List| 
                                                   sorted-by(λx,y. (0 ≤ (cmp x y));srtd)
                                                   ∧ permutation(T;srtd;filter(λz.0 <z cmp z hd(L);L))} 
⊢ ||filter(λz.0 <z cmp hd(L) z;L)|| < ||L||
3
1. T : Type
2. cmp : comparison(T)
3. valueall-type(T)
4. n : ℕ
5. L : T List@i
6. ∀L1:T List
     (||L1|| < ||L|| 
⇒ (quicksort(cmp;L1) ∈ {srtd:T List| sorted-by(λx,y. (0 ≤ (cmp x y));srtd) ∧ permutation(T;srtd;L1\000C)} ))
7. ¬(L = [] ∈ (T List))
8. ||L|| ≥ 1 
9. quicksort(cmp;filter(λz.0 <z cmp z hd(L);L)) ∈ {srtd:T List| 
                                                   sorted-by(λx,y. (0 ≤ (cmp x y));srtd)
                                                   ∧ permutation(T;srtd;filter(λz.0 <z cmp z hd(L);L))} 
10. quicksort(cmp;filter(λz.0 <z cmp hd(L) z;L)) ∈ {srtd:T List| 
                                                    sorted-by(λx,y. (0 ≤ (cmp x y));srtd)
                                                    ∧ permutation(T;srtd;filter(λz.0 <z cmp hd(L) z;L))} 
⊢ quicksort(cmp;filter(λz.0 <z cmp z hd(L);L))
  @ filter(λz.(0 =z cmp hd(L) z);L)
  @ quicksort(cmp;filter(λz.0 <z cmp hd(L) z;L)) ∈ {srtd:T List| 
                                                    sorted-by(λx,y. (0 ≤ (cmp x y));srtd) ∧ permutation(T;srtd;L)} 
Latex:
Latex:
1.  T  :  Type
2.  cmp  :  comparison(T)
3.  valueall-type(T)
4.  n  :  \mBbbN{}
5.  L  :  T  List@i
6.  \mforall{}L1:T  List
          (||L1||  <  ||L||
          {}\mRightarrow{}  (quicksort(cmp;L1)  \mmember{}  \{srtd:T  List| 
                                                            sorted-by(\mlambda{}x,y.  (0  \mleq{}  (cmp  x  y));srtd)  \mwedge{}  permutation(T;srtd;L1)\}  ))
7.  \mneg{}(L  =  [])
\mvdash{}  quicksort(cmp;filter(\mlambda{}z.0  <z  cmp  z  hd(L);L))
    @  filter(\mlambda{}z.(0  =\msubz{}  cmp  hd(L)  z);L)
    @  quicksort(cmp;filter(\mlambda{}z.0  <z  cmp  hd(L)  z;L))  \mmember{}  \{srtd:T  List| 
                                                                                                        sorted-by(\mlambda{}x,y.  (0  \mleq{}  (cmp  x  y));srtd)
                                                                                                        \mwedge{}  permutation(T;srtd;L)\} 
By
Latex:
TACTIC:((Assert  ||L||  \mgeq{}  1    BY
                              (DVar  `L'  THEN  All  Reduce  THEN  Auto'  THEN  D  -1  THEN  Auto))
                THEN  ((InstHyp  [\mkleeneopen{}filter(\mlambda{}z.0  <z  cmp  z  hd(L);L)\mkleeneclose{}]  (-3)\mcdot{}
                            THENM  (InstHyp  [\mkleeneopen{}filter(\mlambda{}z.0  <z  cmp  hd(L)  z;L)\mkleeneclose{}]  (-4)\mcdot{}  THENA  Auto)\mcdot{}
                            )
                            THENA  Auto
                            )
                )
Home
Index