Step * of Lemma last_index_append

[T:Type]. ∀[as,bs:T List]. ∀[P:T ⟶ 𝔹].
  (last_index(as bs;x.P[x])
  if 0 <last_index(bs;x.P[x]) then ||as|| last_index(bs;x.P[x]) else last_index(as;x.P[x]) fi 
  ∈ ℤ)
BY
xxx(Intros
      THEN Subst' last_index(as bs;x.P[x]) snd(accumulate (with value and list item x):
                                                    let n,lst 
                                                    in <1, if P[x] then else lst fi >
                                                   over list:
                                                     bs
                                                   with starting value:
                                                    <||as||, last_index(as;x.P[x])>)) 0
      )xxx }

1
.....equality..... 
1. Type
2. as List
3. bs List
4. T ⟶ 𝔹
⊢ last_index(as bs;x.P[x]) snd(accumulate (with value and list item x):
                                    let n,lst 
                                    in <1, if P[x] then else lst fi >
                                   over list:
                                     bs
                                   with starting value:
                                    <||as||, last_index(as;x.P[x])>))

2
1. Type
2. as List
3. bs List
4. T ⟶ 𝔹
⊢ (snd(accumulate (with value and list item x):
        let n,lst 
        in <1, if P[x] then else lst fi >
       over list:
         bs
       with starting value:
        <||as||, last_index(as;x.P[x])>)))
if 0 <last_index(bs;x.P[x]) then ||as|| last_index(bs;x.P[x]) else last_index(as;x.P[x]) fi 
∈ ℤ


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}[as,bs:T  List].  \mforall{}[P:T  {}\mrightarrow{}  \mBbbB{}].
    ...


By


Latex:
xxx(Intros
        THEN  Subst'  last\_index(as  @  bs;x.P[x])  \msim{}  snd(accumulate  (with  value  p  and  list  item  x):
                                                                                                    let  n,lst  =  p 
                                                                                                    in  <n  +  1,  if  P[x]  then  n  +  1  else  lst  fi  >
                                                                                                  over  list:
                                                                                                      bs
                                                                                                  with  starting  value:
                                                                                                    <||as||,  last\_index(as;x.P[x])>))  0
        )xxx




Home Index