Step
*
1
1
of Lemma
first_index_cons
1. T : Type
2. L : T List
3. a : T
4. P : T ⟶ 𝔹
5. search(||L|| + 1;λi.P[[a / L][i]])
= if P[a] then 1
  if 0 <z search(||L||;λi.P[[a / L][i + 1]]) then search(||L||;λi.P[[a / L][i + 1]]) + 1
  else 0
  fi 
∈ ℤ
⊢ if P[a] then 1
if 0 <z search(||L||;λi.P[[a / L][i + 1]]) then search(||L||;λi.P[[a / L][i + 1]]) + 1
else 0
fi 
= if P[a] then 1
  if 0 <z search(||L||;λi.P[L[i]]) then search(||L||;λi.P[L[i]]) + 1
  else 0
  fi 
∈ ℕ(||L|| + 1) + 1
BY
{ Subst' search(||L||;λi.P[[a / L][i + 1]]) = search(||L||;λi.P[L[i]]) ∈ ℤ 0 }
1
.....equality..... 
1. T : Type
2. L : T List
3. a : T
4. P : T ⟶ 𝔹
5. search(||L|| + 1;λi.P[[a / L][i]])
= if P[a] then 1
  if 0 <z search(||L||;λi.P[[a / L][i + 1]]) then search(||L||;λi.P[[a / L][i + 1]]) + 1
  else 0
  fi 
∈ ℤ
⊢ search(||L||;λi.P[[a / L][i + 1]]) = search(||L||;λi.P[L[i]]) ∈ ℤ
2
1. T : Type
2. L : T List
3. a : T
4. P : T ⟶ 𝔹
5. search(||L|| + 1;λi.P[[a / L][i]])
= if P[a] then 1
  if 0 <z search(||L||;λi.P[[a / L][i + 1]]) then search(||L||;λi.P[[a / L][i + 1]]) + 1
  else 0
  fi 
∈ ℤ
⊢ if P[a] then 1
if 0 <z search(||L||;λi.P[L[i]]) then search(||L||;λi.P[L[i]]) + 1
else 0
fi 
= if P[a] then 1
  if 0 <z search(||L||;λi.P[L[i]]) then search(||L||;λi.P[L[i]]) + 1
  else 0
  fi 
∈ ℕ(||L|| + 1) + 1
Latex:
Latex:
1.  T  :  Type
2.  L  :  T  List
3.  a  :  T
4.  P  :  T  {}\mrightarrow{}  \mBbbB{}
5.  search(||L||  +  1;\mlambda{}i.P[[a  /  L][i]])
=  if  P[a]  then  1
    if  0  <z  search(||L||;\mlambda{}i.P[[a  /  L][i  +  1]])  then  search(||L||;\mlambda{}i.P[[a  /  L][i  +  1]])  +  1
    else  0
    fi 
\mvdash{}  if  P[a]  then  1
if  0  <z  search(||L||;\mlambda{}i.P[[a  /  L][i  +  1]])  then  search(||L||;\mlambda{}i.P[[a  /  L][i  +  1]])  +  1
else  0
fi 
=  if  P[a]  then  1
    if  0  <z  search(||L||;\mlambda{}i.P[L[i]])  then  search(||L||;\mlambda{}i.P[L[i]])  +  1
    else  0
    fi 
By
Latex:
Subst'  search(||L||;\mlambda{}i.P[[a  /  L][i  +  1]])  =  search(||L||;\mlambda{}i.P[L[i]])  0
Home
Index