Step * 2 1 of Lemma select-indices-aux_wf


1. Type
2. A ─→ 𝔹
3. A
4. List
5. select-indices-aux(f;v) ∈ ℕ ─→ (ℕ List)
⊢ if u
  then λn.[n 
           (rec-case(v) of [] => λn.[] h::t => r.if then λn.[n (r (n 1))] else λn.(r (n 1)) fi  (n 1))]
  else λn.(rec-case(v) of [] => λn.[] h::t => r.if then λn.[n (r (n 1))] else λn.(r (n 1)) fi  (n 1))
  fi  ∈ ℕ ─→ (ℕ List)
BY
Fold `select-indices-aux` }

1
1. Type
2. A ─→ 𝔹
3. A
4. List
5. select-indices-aux(f;v) ∈ ℕ ─→ (ℕ List)
⊢ if then λn.[n (select-indices-aux(f;v) (n 1))] else λn.(select-indices-aux(f;v) (n 1)) fi  ∈ ℕ ─→ (ℕ List)


Latex:



Latex:

1.  A  :  Type
2.  f  :  A  {}\mrightarrow{}  \mBbbB{}
3.  u  :  A
4.  v  :  A  List
5.  select-indices-aux(f;v)  \mmember{}  \mBbbN{}  {}\mrightarrow{}  (\mBbbN{}  List)
\mvdash{}  if  f  u
    then  \mlambda{}n.[n  / 
                      (rec-case(v)  of
                        []  =>  \mlambda{}n.[]
                        h::t  =>
                          r.if  f  h  then  \mlambda{}n.[n  /  (r  (n  +  1))]  else  \mlambda{}n.(r  (n  +  1))  fi   
                        (n  +  1))]
    else  \mlambda{}n.(rec-case(v)  of
                      []  =>  \mlambda{}n.[]
                      h::t  =>
                        r.if  f  h  then  \mlambda{}n.[n  /  (r  (n  +  1))]  else  \mlambda{}n.(r  (n  +  1))  fi   
                      (n  +  1))
    fi    \mmember{}  \mBbbN{}  {}\mrightarrow{}  (\mBbbN{}  List)


By


Latex:
Fold  `select-indices-aux`  0




Home Index