Step
*
2
of Lemma
NextNonZero_wf
1. T : Type
2. u : T × ℤ
3. v : (T × ℤ) List
4. NextNonZero(v) ∈ {L':(T × ℤ) List| 
                     ∃Z:(T × {z:ℤ| z = 0 ∈ ℤ} ) List
                      ((v = (Z @ L') ∈ ((T × ℤ) List)) ∧ (0 < ||L'|| 
⇒ (¬((snd(hd(L'))) = 0 ∈ ℤ))))} 
⊢ if snd(u)=0 then NextNonZero(v) else [u / v] ∈ {L':(T × ℤ) List| 
                                                  ∃Z:(T × {z:ℤ| z = 0 ∈ ℤ} ) List
                                                   (([u / v] = (Z @ L') ∈ ((T × ℤ) List))
                                                   ∧ (0 < ||L'|| 
⇒ (¬((snd(hd(L'))) = 0 ∈ ℤ))))} 
BY
{ ((D 2 THEN Reduce 0) THEN (Decide ⌜u2 = 0 ∈ ℤ⌝⋅ THENA Auto) THEN Reduce 0) }
1
1. T : Type
2. u1 : T
3. u2 : ℤ
4. v : (T × ℤ) List
5. NextNonZero(v) ∈ {L':(T × ℤ) List| 
                     ∃Z:(T × {z:ℤ| z = 0 ∈ ℤ} ) List
                      ((v = (Z @ L') ∈ ((T × ℤ) List)) ∧ (0 < ||L'|| 
⇒ (¬((snd(hd(L'))) = 0 ∈ ℤ))))} 
6. u2 = 0 ∈ ℤ
⊢ NextNonZero(v) ∈ {L':(T × ℤ) List| 
                    ∃Z:(T × {z:ℤ| z = 0 ∈ ℤ} ) List
                     (([<u1, u2> / v] = (Z @ L') ∈ ((T × ℤ) List)) ∧ (0 < ||L'|| 
⇒ (¬((snd(hd(L'))) = 0 ∈ ℤ))))} 
2
1. T : Type
2. u1 : T
3. u2 : ℤ
4. v : (T × ℤ) List
5. NextNonZero(v) ∈ {L':(T × ℤ) List| 
                     ∃Z:(T × {z:ℤ| z = 0 ∈ ℤ} ) List
                      ((v = (Z @ L') ∈ ((T × ℤ) List)) ∧ (0 < ||L'|| 
⇒ (¬((snd(hd(L'))) = 0 ∈ ℤ))))} 
6. ¬(u2 = 0 ∈ ℤ)
⊢ [<u1, u2> / v] ∈ {L':(T × ℤ) List| 
                    ∃Z:(T × {z:ℤ| z = 0 ∈ ℤ} ) List
                     (([<u1, u2> / v] = (Z @ L') ∈ ((T × ℤ) List)) ∧ (0 < ||L'|| 
⇒ (¬((snd(hd(L'))) = 0 ∈ ℤ))))} 
Latex:
Latex:
1.  T  :  Type
2.  u  :  T  \mtimes{}  \mBbbZ{}
3.  v  :  (T  \mtimes{}  \mBbbZ{})  List
4.  NextNonZero(v)  \mmember{}  \{L':(T  \mtimes{}  \mBbbZ{})  List| 
                                          \mexists{}Z:(T  \mtimes{}  \{z:\mBbbZ{}|  z  =  0\}  )  List
                                            ((v  =  (Z  @  L'))  \mwedge{}  (0  <  ||L'||  {}\mRightarrow{}  (\mneg{}((snd(hd(L')))  =  0))))\} 
\mvdash{}  if  snd(u)=0  then  NextNonZero(v)  else  [u  /  v]  \mmember{}  \{L':(T  \mtimes{}  \mBbbZ{})  List| 
                                                                                                    \mexists{}Z:(T  \mtimes{}  \{z:\mBbbZ{}|  z  =  0\}  )  List
                                                                                                      (([u  /  v]  =  (Z  @  L'))
                                                                                                      \mwedge{}  (0  <  ||L'||  {}\mRightarrow{}  (\mneg{}((snd(hd(L')))  =  0))))\} 
By
Latex:
((D  2  THEN  Reduce  0)  THEN  (Decide  \mkleeneopen{}u2  =  0\mkleeneclose{}\mcdot{}  THENA  Auto)  THEN  Reduce  0)
Home
Index