Step
*
2
1
of Lemma
remove-nat-missing-prop
1. m : ℤ@i
2. \\%18 : (-1) ≤ m@i
3. s1 : ℕ List@i
4. \\%17 : l-ordered(ℕ;x,y.x < y;s1) ∧ (∀x∈s1.x < m)@i
5. ¬(s1 = [] ∈ (ℕ List))
6. x : ℕ@i
7. y : ℕ@i
8. y = m ∈ ℤ
9. last(s1) = (m - 1) ∈ ℤ
⊢ ↑member-nat-missing(x;eval n = select-last-in-nat-missing(last(s1);s1) in <n, filter(λx.x <z n;s1)>) 
⇐⇒ (¬(x = y ∈ ℕ)\000C) ∧ (↑member-nat-missing(x;<m, s1>))
BY
{ ((CallByValueReduce 0 THENA ProveHasValue)
   THEN (RWO "assert-member-nat-missing" 0
         THENA (Reduce 0
                THEN Auto
                THEN MemTypeCD
                THEN Auto
                THEN Try ((BLemma `l-ordered-filter` THEN Auto))
                THEN (RWO "l_all_iff" 0 THEN Auto)
                THEN (RW ListC (-1) THENA Auto)
                THEN Reduce (-1)
                THEN RW assert_pushdownC (-1)
                THEN Auto)
         )
   ) }
1
1. m : ℤ@i
2. \\%18 : (-1) ≤ m@i
3. s1 : ℕ List@i
4. \\%17 : l-ordered(ℕ;x,y.x < y;s1) ∧ (∀x∈s1.x < m)@i
5. ¬(s1 = [] ∈ (ℕ List))
6. x : ℕ@i
7. y : ℕ@i
8. y = m ∈ ℤ
9. last(s1) = (m - 1) ∈ ℤ
⊢ (x ≤ (fst(<select-last-in-nat-missing(last(s1);s1), filter(λx.x <z select-last-in-nat-missing(last(s1);s1);s1)>)))
  ∧ (¬(x ∈ snd(<select-last-in-nat-missing(last(s1);s1), filter(λx.x <z select-last-in-nat-missing(last(s1);s1);s1)>)))
⇐⇒ (¬(x = y ∈ ℕ)) ∧ (x ≤ (fst(<m, s1>))) ∧ (¬(x ∈ snd(<m, s1>)))
Latex:
1.  m  :  \mBbbZ{}@i
2.  \mbackslash{}\mbackslash{}\%18  :  (-1)  \mleq{}  m@i
3.  s1  :  \mBbbN{}  List@i
4.  \mbackslash{}\mbackslash{}\%17  :  l-ordered(\mBbbN{};x,y.x  <  y;s1)  \mwedge{}  (\mforall{}x\mmember{}s1.x  <  m)@i
5.  \mneg{}(s1  =  [])
6.  x  :  \mBbbN{}@i
7.  y  :  \mBbbN{}@i
8.  y  =  m
9.  last(s1)  =  (m  -  1)
\mvdash{}  \muparrow{}member-nat-missing(x;eval  n  =  select-last-in-nat-missing(last(s1);s1)  in
                                                <n,  filter(\mlambda{}x.x  <z  n;s1)>)
\mLeftarrow{}{}\mRightarrow{}  (\mneg{}(x  =  y))  \mwedge{}  (\muparrow{}member-nat-missing(x;<m,  s1>))
By
((CallByValueReduce  0  THENA  ProveHasValue)
  THEN  (RWO  "assert-member-nat-missing"  0
              THENA  (Reduce  0
                            THEN  Auto
                            THEN  MemTypeCD
                            THEN  Auto
                            THEN  Try  ((BLemma  `l-ordered-filter`  THEN  Auto))
                            THEN  (RWO  "l\_all\_iff"  0  THEN  Auto)
                            THEN  (RW  ListC  (-1)  THENA  Auto)
                            THEN  Reduce  (-1)
                            THEN  RW  assert\_pushdownC  (-1)
                            THEN  Auto)
              )
  )
Home
Index