Step * 1 of Lemma filter-upto-length


1. Type
2. T ⟶ 𝔹
3. T
4. List
5. filter(P;v) map(λi.v[i];filter(λi.(P v[i]);upto(||v||)))
⊢ if then [u filter(P;v)] else filter(P;v) fi  map(λi.[u v][i];filter(λi.(P [u v][i]);upto(||v|| 1)))
BY
((InstLemma `upto_decomp` [⌜||v|| 1⌝;⌜1⌝]⋅ THENA Auto') THEN Subst' upto(1) [0] -1) }

1
.....equality..... 
1. Type
2. T ⟶ 𝔹
3. T
4. List
5. filter(P;v) map(λi.v[i];filter(λi.(P v[i]);upto(||v||)))
6. upto(||v|| 1) upto(1) map(λx.(x 1);upto((||v|| 1) 1))
⊢ upto(1) [0]

2
1. Type
2. T ⟶ 𝔹
3. T
4. List
5. filter(P;v) map(λi.v[i];filter(λi.(P v[i]);upto(||v||)))
6. upto(||v|| 1) [0] map(λx.(x 1);upto((||v|| 1) 1))
⊢ if then [u filter(P;v)] else filter(P;v) fi  map(λi.[u v][i];filter(λi.(P [u v][i]);upto(||v|| 1)))


Latex:


Latex:

1.  T  :  Type
2.  P  :  T  {}\mrightarrow{}  \mBbbB{}
3.  u  :  T
4.  v  :  T  List
5.  filter(P;v)  \msim{}  map(\mlambda{}i.v[i];filter(\mlambda{}i.(P  v[i]);upto(||v||)))
\mvdash{}  if  P  u  then  [u  /  filter(P;v)]  else  filter(P;v)  fi   
\msim{}  map(\mlambda{}i.[u  /  v][i];filter(\mlambda{}i.(P  [u  /  v][i]);upto(||v||  +  1)))


By


Latex:
((InstLemma  `upto\_decomp`  [\mkleeneopen{}||v||  +  1\mkleeneclose{};\mkleeneopen{}1\mkleeneclose{}]\mcdot{}  THENA  Auto')  THEN  Subst'  upto(1)  \msim{}  [0]  -1)




Home Index