Step
*
2
of Lemma
apply-alist-cases
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T × Top
5. v : (T × Top) List
6. apply-alist(eq;v;x) ~ ff supposing ¬(x ∈ map(λp.(fst(p));v))
∧ (∀[i:ℕ||v||]
     (apply-alist(eq;v;x) ~ inl (snd(v[i]))) supposing (((fst(v[i])) = x ∈ T) and (∀j:ℕi. (¬((fst(v[j])) = x ∈ T)))))
⊢ apply-alist(eq;[u / v];x) ~ ff supposing ¬(x ∈ map(λp.(fst(p));[u / v]))
∧ (∀[i:ℕ||[u / v]||]
     (apply-alist(eq;[u / v];x) ~ inl (snd([u / v][i]))) supposing 
        (((fst([u / v][i])) = x ∈ T) and 
        (∀j:ℕi. (¬((fst([u / v][j])) = x ∈ T)))))
BY
{ (Unfold `apply-alist` 0
   THEN Reduce 0
   THEN Fold `apply-alist` 0
   THEN (SplitOnConclITE THENA Auto)
   THEN (D 0 THENA Auto)
   THEN (UnivCD THENA Auto')) }
1
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T × Top
5. v : (T × Top) List
6. apply-alist(eq;v;x) ~ ff supposing ¬(x ∈ map(λp.(fst(p));v))
∧ (∀[i:ℕ||v||]
     (apply-alist(eq;v;x) ~ inl (snd(v[i]))) supposing (((fst(v[i])) = x ∈ T) and (∀j:ℕi. (¬((fst(v[j])) = x ∈ T)))))
7. (fst(u)) = x ∈ T
8. ¬(x ∈ [fst(u) / map(λp.(fst(p));v)])
⊢ inl (snd(u)) ~ ff
2
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T × Top
5. v : (T × Top) List
6. apply-alist(eq;v;x) ~ ff supposing ¬(x ∈ map(λp.(fst(p));v))
∧ (∀[i:ℕ||v||]
     (apply-alist(eq;v;x) ~ inl (snd(v[i]))) supposing (((fst(v[i])) = x ∈ T) and (∀j:ℕi. (¬((fst(v[j])) = x ∈ T)))))
7. (fst(u)) = x ∈ T
8. i : ℕ||v|| + 1
9. ∀j:ℕi. (¬((fst([u / v][j])) = x ∈ T))
10. (fst([u / v][i])) = x ∈ T
⊢ inl (snd(u)) ~ inl (snd([u / v][i]))
3
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T × Top
5. v : (T × Top) List
6. apply-alist(eq;v;x) ~ ff supposing ¬(x ∈ map(λp.(fst(p));v))
∧ (∀[i:ℕ||v||]
     (apply-alist(eq;v;x) ~ inl (snd(v[i]))) supposing (((fst(v[i])) = x ∈ T) and (∀j:ℕi. (¬((fst(v[j])) = x ∈ T)))))
7. ¬((fst(u)) = x ∈ T)
8. ¬(x ∈ [fst(u) / map(λp.(fst(p));v)])
⊢ apply-alist(eq;v;x) ~ ff
4
1. T : Type
2. eq : EqDecider(T)
3. x : T
4. u : T × Top
5. v : (T × Top) List
6. apply-alist(eq;v;x) ~ ff supposing ¬(x ∈ map(λp.(fst(p));v))
∧ (∀[i:ℕ||v||]
     (apply-alist(eq;v;x) ~ inl (snd(v[i]))) supposing (((fst(v[i])) = x ∈ T) and (∀j:ℕi. (¬((fst(v[j])) = x ∈ T)))))
7. ¬((fst(u)) = x ∈ T)
8. i : ℕ||v|| + 1
9. ∀j:ℕi. (¬((fst([u / v][j])) = x ∈ T))
10. (fst([u / v][i])) = x ∈ T
⊢ apply-alist(eq;v;x) ~ inl (snd([u / v][i]))
Latex:
Latex:
1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  x  :  T
4.  u  :  T  \mtimes{}  Top
5.  v  :  (T  \mtimes{}  Top)  List
6.  apply-alist(eq;v;x)  \msim{}  ff  supposing  \mneg{}(x  \mmember{}  map(\mlambda{}p.(fst(p));v))
\mwedge{}  (\mforall{}[i:\mBbbN{}||v||]
          (apply-alist(eq;v;x)  \msim{}  inl  (snd(v[i])))  supposing 
                (((fst(v[i]))  =  x)  and 
                (\mforall{}j:\mBbbN{}i.  (\mneg{}((fst(v[j]))  =  x)))))
\mvdash{}  apply-alist(eq;[u  /  v];x)  \msim{}  ff  supposing  \mneg{}(x  \mmember{}  map(\mlambda{}p.(fst(p));[u  /  v]))
\mwedge{}  (\mforall{}[i:\mBbbN{}||[u  /  v]||]
          (apply-alist(eq;[u  /  v];x)  \msim{}  inl  (snd([u  /  v][i])))  supposing 
                (((fst([u  /  v][i]))  =  x)  and 
                (\mforall{}j:\mBbbN{}i.  (\mneg{}((fst([u  /  v][j]))  =  x)))))
By
Latex:
(Unfold  `apply-alist`  0
  THEN  Reduce  0
  THEN  Fold  `apply-alist`  0
  THEN  (SplitOnConclITE  THENA  Auto)
  THEN  (D  0  THENA  Auto)
  THEN  (UnivCD  THENA  Auto'))
Home
Index