Step
*
2
of Lemma
WfdSpread-induction
1. [Pos] : Type
2. ∀a,b:Pos.  Dec(a = b ∈ Pos)
3. [Mv] : Pos ⟶ Type
4. [P] : WfdSpread(Pos;a.Mv[a]) ⟶ ℙ
5. ∀a:Pos. ∀f:Mv[a] ⟶ WfdSpread(Pos;a.Mv[a]).  ((∀m:Mv[a]. P[f m]) 
⇒ P[mkW(a;f)])
6. w : WfdSpread(Pos;a.Mv[a])@i
7. n : ℕ@i
8. s : ℕn ⟶ MoveChoice(Pos;a.Mv[a])@i
9. ∀t:MoveChoice(Pos;a.Mv[a]). case W_sel(w;n + 1;s++t) of inl(w) => P[w] | inr(z) => True
⊢ case W_sel(w;n;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
   THEN GenConclAtAddr [1]
   THEN D -2
   THEN Reduce 0
   THEN Auto
   THEN ((InstLemma `WfdSpread-ext` [⌜Pos⌝;⌜Mv⌝]⋅ THENA Auto)
         THEN MoveToConcl (-2)
         THEN (GenConcl ⌜x = z ∈ (a:Pos × (Mv[a] ⟶ WfdSpread(Pos;a.Mv[a])))⌝⋅ THENA Auto)
         THEN ThinVar `x'
         THEN D -1
         THEN Fold `mkW` 0
         THEN RenameVar `f' (-1)
         THEN Auto)⋅)⋅ }
1
1. [Pos] : Type
2. eq : EqDecider(Pos)
3. ∀a,b:Pos.  Dec(a = b ∈ Pos)
4. [Mv] : Pos ⟶ Type
5. [P] : WfdSpread(Pos;a.Mv[a]) ⟶ ℙ
6. ∀a:Pos. ∀f:Mv[a] ⟶ WfdSpread(Pos;a.Mv[a]).  ((∀m:Mv[a]. P[f m]) 
⇒ P[mkW(a;f)])
7. w : WfdSpread(Pos;a.Mv[a])@i
8. n : ℕ@i
9. s : ℕn ⟶ MoveChoice(Pos;a.Mv[a])@i
10. ∀t:MoveChoice(Pos;a.Mv[a]). case W_sel(w;n + 1;s++t) of inl(w) => P[w] | inr(z) => True
11. WfdSpread(Pos;a.Mv[a]) ≡ a:Pos × (Mv[a] ⟶ WfdSpread(Pos;a.Mv[a]))
12. a : Pos@i
13. f : Mv[a] ⟶ WfdSpread(Pos;a.Mv[a])@i
14. W_sel(w;n;s) = (inl mkW(a;f)) ∈ (WfdSpread(Pos;a.Mv[a])?)
⊢ P[mkW(a;f)]
Latex:
Latex:
1.  [Pos]  :  Type
2.  \mforall{}a,b:Pos.    Dec(a  =  b)
3.  [Mv]  :  Pos  {}\mrightarrow{}  Type
4.  [P]  :  WfdSpread(Pos;a.Mv[a])  {}\mrightarrow{}  \mBbbP{}
5.  \mforall{}a:Pos.  \mforall{}f:Mv[a]  {}\mrightarrow{}  WfdSpread(Pos;a.Mv[a]).    ((\mforall{}m:Mv[a].  P[f  m])  {}\mRightarrow{}  P[mkW(a;f)])
6.  w  :  WfdSpread(Pos;a.Mv[a])@i
7.  n  :  \mBbbN{}@i
8.  s  :  \mBbbN{}n  {}\mrightarrow{}  MoveChoice(Pos;a.Mv[a])@i
9.  \mforall{}t:MoveChoice(Pos;a.Mv[a]).  case  W\_sel(w;n  +  1;s++t)  of  inl(w)  =>  P[w]  |  inr(z)  =>  True
\mvdash{}  case  W\_sel(w;n;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
  THEN  GenConclAtAddr  [1]
  THEN  D  -2
  THEN  Reduce  0
  THEN  Auto
  THEN  ((InstLemma  `WfdSpread-ext`  [\mkleeneopen{}Pos\mkleeneclose{};\mkleeneopen{}Mv\mkleeneclose{}]\mcdot{}  THENA  Auto)
              THEN  MoveToConcl  (-2)
              THEN  (GenConcl  \mkleeneopen{}x  =  z\mkleeneclose{}\mcdot{}  THENA  Auto)
              THEN  ThinVar  `x'
              THEN  D  -1
              THEN  Fold  `mkW`  0
              THEN  RenameVar  `f'  (-1)
              THEN  Auto)\mcdot{})\mcdot{}
Home
Index