Step
*
2
of Lemma
W-type-induction
1. [A] : Type
2. ∀x,y:A.  Dec(x = y ∈ A)
3. [B] : A ⟶ Type
4. [P] : W-type(A; a.B[a]) ⟶ ℙ
5. ∀a:A. ∀f:B[a] ⟶ W-type(A; a.B[a]).  ((∀b:B[a]. P[f b]) 
⇒ P[W-sup(a;f)])
6. w : W-type(A; a.B[a])@i
7. s : {s:(a:A ⟶ (B[a]?)) List| ¬↑isr(Wselect(w;s))} @i
8. ∀t:a:A ⟶ (B[a]?). case Wselect(w;s @ [t]) of inl(w) => P[w] | inr(z) => True
⊢ case Wselect(w;s) of inl(w) => P[w] | inr(z) => True
BY
{ ((TACTIC:(FLemma `deq-exists` [2] THENM RenameVar `eq' (-1)) THENA Auto) THEN PromoteHyp (-1) 2) }
1
1. [A] : Type
2. eq : EqDecider(A)
3. ∀x,y:A.  Dec(x = y ∈ A)
4. [B] : A ⟶ Type
5. [P] : W-type(A; a.B[a]) ⟶ ℙ
6. ∀a:A. ∀f:B[a] ⟶ W-type(A; a.B[a]).  ((∀b:B[a]. P[f b]) 
⇒ P[W-sup(a;f)])
7. w : W-type(A; a.B[a])@i
8. s : {s:(a:A ⟶ (B[a]?)) List| ¬↑isr(Wselect(w;s))} @i
9. ∀t:a:A ⟶ (B[a]?). case Wselect(w;s @ [t]) of inl(w) => P[w] | inr(z) => True
⊢ case Wselect(w;s) of inl(w) => P[w] | inr(z) => True
Latex:
Latex:
1.  [A]  :  Type
2.  \mforall{}x,y:A.    Dec(x  =  y)
3.  [B]  :  A  {}\mrightarrow{}  Type
4.  [P]  :  W-type(A;  a.B[a])  {}\mrightarrow{}  \mBbbP{}
5.  \mforall{}a:A.  \mforall{}f:B[a]  {}\mrightarrow{}  W-type(A;  a.B[a]).    ((\mforall{}b:B[a].  P[f  b])  {}\mRightarrow{}  P[W-sup(a;f)])
6.  w  :  W-type(A;  a.B[a])@i
7.  s  :  \{s:(a:A  {}\mrightarrow{}  (B[a]?))  List|  \mneg{}\muparrow{}isr(Wselect(w;s))\}  @i
8.  \mforall{}t:a:A  {}\mrightarrow{}  (B[a]?).  case  Wselect(w;s  @  [t])  of  inl(w)  =>  P[w]  |  inr(z)  =>  True
\mvdash{}  case  Wselect(w;s)  of  inl(w)  =>  P[w]  |  inr(z)  =>  True
By
Latex:
((TACTIC:(FLemma  `deq-exists`  [2]  THENM  RenameVar  `eq'  (-1))  THENA  Auto)  THEN  PromoteHyp  (-1)  2)
Home
Index