Step
*
1
2
of Lemma
longer-list-not-member
1. T : Type
2. eq : ∀x,y:T.  Dec(x = y ∈ T)@i
3. u : T@i
4. v : T List@i
5. ∀L1:T List. (no_repeats(T;L1) 
⇒ no_repeats(T;v) 
⇒ (||v|| > ||L1||) 
⇒ (∃x:T. ((x ∈ v) ∧ (¬(x ∈ L1)))))@i
6. L1 : T List@i
7. no_repeats(T;L1)@i
8. no_repeats(T;[u / v])@i
9. ||v|| = ||L1|| ∈ ℤ
10. (u ∈ L1)
⊢ ||remove-first(λt.isl(eq t u);L1)|| < ||v||
BY
{ ((InstLemma `length-remove-first` [⌈T⌉;⌈L1⌉;⌈λt.isl(eq t u)⌉]⋅
    THENA (Auto
           THEN (InstLemma `isl_wf` [⌈t = u ∈ T⌉;⌈¬(t = u ∈ T)⌉]⋅ THENA Auto)
           THEN BHyp (-1)
           THEN Auto
           THEN Unfold `decidable` 2
           THEN Auto)
    )
   THEN (RepeatFor 2 (D (-1)) THEN Reduce (-2) THEN Auto')
   THEN skip{(Try (Complete ((RepUR ``l_exists`` (-1) THEN ExRepD THEN Auto)))
              THEN Unfold `l_all` (-1)
              THEN D (-1)
              THEN InstHyp [⌈u⌉] (-2)⋅
              THEN Auto
              THEN Reduce (-1)
              THEN Unfold `isl` (-1)
              THEN Try (Fold `dec2bool` (-1)⋅)
              THEN RWO "dec2bool_decidable" (-1)
              THEN Auto
              THEN Try (Complete ((Assert ⌈False⌉⋅ THEN Auto)))
              THEN Unfold `decision` 0
              THEN Unfold `decidable` 2
              THEN Auto)}) }
1
1. T : Type
2. eq : ∀x,y:T.  Dec(x = y ∈ T)@i
3. u : T@i
4. v : T List@i
5. ∀L1:T List. (no_repeats(T;L1) 
⇒ no_repeats(T;v) 
⇒ (||v|| > ||L1||) 
⇒ (∃x:T. ((x ∈ v) ∧ (¬(x ∈ L1)))))@i
6. L1 : T List@i
7. no_repeats(T;L1)@i
8. no_repeats(T;[u / v])@i
9. ||v|| = ||L1|| ∈ ℤ
10. (u ∈ L1)
11. (∀x∈L1.¬↑isl(eq x u))
12. remove-first(λt.isl(eq t u);L1) ~ L1
⊢ ||remove-first(λt.isl(eq t u);L1)|| < ||v||
Latex:
Latex:
1.  T  :  Type
2.  eq  :  \mforall{}x,y:T.    Dec(x  =  y)@i
3.  u  :  T@i
4.  v  :  T  List@i
5.  \mforall{}L1:T  List
          (no\_repeats(T;L1)  {}\mRightarrow{}  no\_repeats(T;v)  {}\mRightarrow{}  (||v||  >  ||L1||)  {}\mRightarrow{}  (\mexists{}x:T.  ((x  \mmember{}  v)  \mwedge{}  (\mneg{}(x  \mmember{}  L1)))))@i
6.  L1  :  T  List@i
7.  no\_repeats(T;L1)@i
8.  no\_repeats(T;[u  /  v])@i
9.  ||v||  =  ||L1||
10.  (u  \mmember{}  L1)
\mvdash{}  ||remove-first(\mlambda{}t.isl(eq  t  u);L1)||  <  ||v||
By
Latex:
((InstLemma  `length-remove-first`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}L1\mkleeneclose{};\mkleeneopen{}\mlambda{}t.isl(eq  t  u)\mkleeneclose{}]\mcdot{}
    THENA  (Auto
                  THEN  (InstLemma  `isl\_wf`  [\mkleeneopen{}t  =  u\mkleeneclose{};\mkleeneopen{}\mneg{}(t  =  u)\mkleeneclose{}]\mcdot{}  THENA  Auto)
                  THEN  BHyp  (-1)
                  THEN  Auto
                  THEN  Unfold  `decidable`  2
                  THEN  Auto)
    )
  THEN  (RepeatFor  2  (D  (-1))  THEN  Reduce  (-2)  THEN  Auto')
  THEN  skip\{(Try  (Complete  ((RepUR  ``l\_exists``  (-1)  THEN  ExRepD  THEN  Auto)))
                        THEN  Unfold  `l\_all`  (-1)
                        THEN  D  (-1)
                        THEN  InstHyp  [\mkleeneopen{}u\mkleeneclose{}]  (-2)\mcdot{}
                        THEN  Auto
                        THEN  Reduce  (-1)
                        THEN  Unfold  `isl`  (-1)
                        THEN  Try  (Fold  `dec2bool`  (-1)\mcdot{})
                        THEN  RWO  "dec2bool\_decidable"  (-1)
                        THEN  Auto
                        THEN  Try  (Complete  ((Assert  \mkleeneopen{}False\mkleeneclose{}\mcdot{}  THEN  Auto)))
                        THEN  Unfold  `decision`  0
                        THEN  Unfold  `decidable`  2
                        THEN  Auto)\})
Home
Index