Step
*
of Lemma
list-index-property
∀[T:Type]. ∀[eq:EqDecider(T)]. ∀[x:T]. ∀[L:T List].  L[outl(list-index(eq;L;x))] = x ∈ T supposing (x ∈ L)
BY
{ (Auto
   THEN (InstLemma `isl-list-index` [⌜T⌝;⌜eq⌝;⌜x⌝;⌜L⌝]⋅ THENA Auto)
   THEN ThinTrivial
   THEN Lemmaize [-1]
   THEN InductionOnList
   THEN Unfold `list-index` 0
   THEN Reduce 0
   THEN Try (((D 0 THENM Trivial) THEN Auto))
   THEN Fold `list-index` 0
   THEN MoveToConcl (-1)
   THEN GenConclAtAddr [1;1;1;1]
   THEN D -2
   THEN Reduce 0) }
1
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T
5. v : T List
6. x1 : ℕ||v||
7. list-index(eq;v;x) = (inl x1) ∈ (ℕ||v|| + Top)
⊢ (True 
⇒ (v[x1] = x ∈ T)) 
⇒ True 
⇒ ([u / v][x1 + 1] = x ∈ T)
2
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T
5. v : T List
6. y : Top
7. list-index(eq;v;x) = (inr y ) ∈ (ℕ||v|| + Top)
⊢ (False 
⇒ (v[⊥] = x ∈ T))
⇒ (↑isl(if eqof(eq) u x then inl 0 else inr y  fi ))
⇒ ([u / v][outl(if eqof(eq) u x then inl 0 else inr y  fi )] = x ∈ T)
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[x:T].  \mforall{}[L:T  List].
    L[outl(list-index(eq;L;x))]  =  x  supposing  (x  \mmember{}  L)
By
Latex:
(Auto
  THEN  (InstLemma  `isl-list-index`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  ThinTrivial
  THEN  Lemmaize  [-1]
  THEN  InductionOnList
  THEN  Unfold  `list-index`  0
  THEN  Reduce  0
  THEN  Try  (((D  0  THENM  Trivial)  THEN  Auto))
  THEN  Fold  `list-index`  0
  THEN  MoveToConcl  (-1)
  THEN  GenConclAtAddr  [1;1;1;1]
  THEN  D  -2
  THEN  Reduce  0)
Home
Index