Step * 2 1 1 2 1 of Lemma WfdSpread-induction


1. Pos Type
2. eq EqDecider(Pos)
3. Mv Pos ⟶ Type
4. : ℤ
5. 1 ≠ 0
6. 0 < n
7. ∀w:WfdSpread(Pos;a.Mv[a]). ∀s:ℕ1 ⟶ MoveChoice(Pos;a.Mv[a]). ∀a:Pos. ∀f:Mv[a] ⟶ WfdSpread(Pos;a.Mv[a]).
     ((W_sel(w;n 1;s) (inl mkW(a;f)) ∈ (WfdSpread(Pos;a.Mv[a])?))
      (∀m:Mv[a]
           (W_sel(w;(n 1) 1;s++λb.if eq then inl else inr ⋅  fi (inl (f m)) ∈ (WfdSpread(Pos;a.Mv[a])?))))
8. WfdSpread(Pos;a.Mv[a])@i
9. : ℕn ⟶ MoveChoice(Pos;a.Mv[a])@i
10. Pos@i
11. Mv[a] ⟶ WfdSpread(Pos;a.Mv[a])@i
12. Mv[a]@i
13. ¬(n 0 ∈ ℤ)
14. WfdSpread(Pos;a.Mv[a]) ≡ a:Pos × (Mv[a] ⟶ WfdSpread(Pos;a.Mv[a]))
15. a1 Pos@i
16. z1 Mv[a1] ⟶ WfdSpread(Pos;a.Mv[a])@i
17. = <a1, z1> ∈ (a:Pos × (Mv[a] ⟶ WfdSpread(Pos;a.Mv[a])))
18. Mv[a1]@i
19. (s a1) (inl x) ∈ (Mv[a1]?)
⊢ (W_sel(z1 x;n 1;λi.(s (i 1))) (inl mkW(a;f)) ∈ (WfdSpread(Pos;a.Mv[a])?))
 (W_sel(z1 x;(n 1) 1;λi.if (i 1) < (n)
                                 then (i 1)
                                 else if (i 1) < (n 1)  then λb.if eq then inl else inr ⋅  fi   else ⊥)
   (inl (f m))
   ∈ (WfdSpread(Pos;a.Mv[a])?))
BY
TACTIC:Auto }

1
1. Pos Type
2. eq EqDecider(Pos)
3. Mv Pos ⟶ Type
4. : ℤ
5. 1 ≠ 0
6. 0 < n
7. ∀w:WfdSpread(Pos;a.Mv[a]). ∀s:ℕ1 ⟶ MoveChoice(Pos;a.Mv[a]). ∀a:Pos. ∀f:Mv[a] ⟶ WfdSpread(Pos;a.Mv[a]).
     ((W_sel(w;n 1;s) (inl mkW(a;f)) ∈ (WfdSpread(Pos;a.Mv[a])?))
      (∀m:Mv[a]
           (W_sel(w;(n 1) 1;s++λb.if eq then inl else inr ⋅  fi (inl (f m)) ∈ (WfdSpread(Pos;a.Mv[a])?))))
8. WfdSpread(Pos;a.Mv[a])@i
9. : ℕn ⟶ MoveChoice(Pos;a.Mv[a])@i
10. Pos@i
11. Mv[a] ⟶ WfdSpread(Pos;a.Mv[a])@i
12. Mv[a]@i
13. ¬(n 0 ∈ ℤ)
14. WfdSpread(Pos;a.Mv[a]) ≡ a:Pos × (Mv[a] ⟶ WfdSpread(Pos;a.Mv[a]))
15. a1 Pos@i
16. z1 Mv[a1] ⟶ WfdSpread(Pos;a.Mv[a])@i
17. = <a1, z1> ∈ (a:Pos × (Mv[a] ⟶ WfdSpread(Pos;a.Mv[a])))
18. Mv[a1]@i
19. (s a1) (inl x) ∈ (Mv[a1]?)
20. W_sel(z1 x;n 1;λi.(s (i 1))) (inl mkW(a;f)) ∈ (WfdSpread(Pos;a.Mv[a])?)
⊢ W_sel(z1 x;(n 1) 1;λi.if (i 1) < (n)
                               then (i 1)
                               else if (i 1) < (n 1)  then λb.if eq then inl else inr ⋅  fi   else ⊥)
(inl (f m))
∈ (WfdSpread(Pos;a.Mv[a])?)


Latex:


Latex:

1.  Pos  :  Type
2.  eq  :  EqDecider(Pos)
3.  Mv  :  Pos  {}\mrightarrow{}  Type
4.  n  :  \mBbbZ{}
5.  n  +  1  \mneq{}  0
6.  0  <  n
7.  \mforall{}w:WfdSpread(Pos;a.Mv[a]).  \mforall{}s:\mBbbN{}n  -  1  {}\mrightarrow{}  MoveChoice(Pos;a.Mv[a]).  \mforall{}a:Pos.
      \mforall{}f:Mv[a]  {}\mrightarrow{}  WfdSpread(Pos;a.Mv[a]).
          ((W\_sel(w;n  -  1;s)  =  (inl  mkW(a;f)))
          {}\mRightarrow{}  (\mforall{}m:Mv[a].  (W\_sel(w;(n  -  1)  +  1;s++\mlambda{}b.if  eq  b  a  then  inl  m  else  inr  \mcdot{}    fi  )  =  (inl  (f  m)))))
8.  w  :  WfdSpread(Pos;a.Mv[a])@i
9.  s  :  \mBbbN{}n  {}\mrightarrow{}  MoveChoice(Pos;a.Mv[a])@i
10.  a  :  Pos@i
11.  f  :  Mv[a]  {}\mrightarrow{}  WfdSpread(Pos;a.Mv[a])@i
12.  m  :  Mv[a]@i
13.  \mneg{}(n  =  0)
14.  WfdSpread(Pos;a.Mv[a])  \mequiv{}  a:Pos  \mtimes{}  (Mv[a]  {}\mrightarrow{}  WfdSpread(Pos;a.Mv[a]))
15.  a1  :  Pos@i
16.  z1  :  Mv[a1]  {}\mrightarrow{}  WfdSpread(Pos;a.Mv[a])@i
17.  w  =  <a1,  z1>
18.  x  :  Mv[a1]@i
19.  (s  0  a1)  =  (inl  x)
\mvdash{}  (W\_sel(z1  x;n  -  1;\mlambda{}i.(s  (i  +  1)))  =  (inl  mkW(a;f)))
{}\mRightarrow{}  (W\_sel(z1  x;(n  +  1)  -  1;\mlambda{}i.if  (i  +  1)  <  (n)
                                                                  then  s  (i  +  1)
                                                                  else  if  (i  +  1)  <  (n  +  1)
                                                                                  then  \mlambda{}b.if  eq  b  a  then  inl  m  else  inr  \mcdot{}    fi 
                                                                                  else  \mbot{})
      =  (inl  (f  m)))


By


Latex:
TACTIC:Auto




Home Index